# Module: `nupp.resource_set`
## Constructors
### `new` _constructor_
```nupp
local function new(label: string?): ResourceSet
```
#### Arguments
| Name | Type | Description |
| --- | --- | --- |
| `label` | `string?` | |
#### Returns
| Type | Description |
| --- | --- |
| `ResourceSet` | |
## Types
### `ResourceSet` _record_
```nupp
local record ResourceSet
label: string
@drop
close: nosuspend function(takes self: ResourceSet)
adopt: function(self: ResourceSet, takes value: T, terminal: function(takes value: T)?): T borrows self
remove: function(self: ResourceSet, borrows value: T): T
end
```
#### Methods
##### `close`
```nupp
close: nosuspend function(takes self: ResourceSet)
```
###### Arguments
| Name | Type | Description |
| --- | --- | --- |
| `self` | `ResourceSet` | |
##### `adopt`
```nupp
adopt: function(self: ResourceSet, takes value: T, terminal: function(takes value: T)?): T borrows self
```
###### Arguments
| Name | Type | Description |
| --- | --- | --- |
| `self` | `ResourceSet` | |
| `value` | `T` | |
| `terminal` | `function(takes value: T)?` | |
###### Returns
| Type | Description |
| --- | --- |
| `T borrows self` | |
##### `remove`
```nupp
remove: function(self: ResourceSet, borrows value: T): T
```
###### Arguments
| Name | Type | Description |
| --- | --- | --- |
| `self` | `ResourceSet` | |
| `value` | `T` | |
###### Returns
| Type | Description |
| --- | --- |
| `T` | |
#### Fields
| Name | Type | Description |
| --- | --- | --- |
| `label` | `string` | |