Skip to content
Lattice

EnumerableSet

Git Source

Title: EnumerableSet

Author: Modified from OpenZeppelin (https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/utils/structs/EnumerableSet.sol)

Generic enumerable sets with O(1) add, remove, contains, length, at. Backed by an array plus a 1-based index map (swap-and-pop on removal).

Storage layout, error semantics, and method names match OpenZeppelin's utils/structs/EnumerableSet.sol. No own ERC-7201 slot — Set is held inline in the consumer's storage.

Functions

_add

function _add(Set storage set, bytes32 value) private returns (bool);

Parameters

NameTypeDescription
setSet
valuebytes32

Returns

NameTypeDescription
<none>bool

_remove

function _remove(Set storage set, bytes32 value) private returns (bool);

Parameters

NameTypeDescription
setSet
valuebytes32

Returns

NameTypeDescription
<none>bool

_contains

function _contains(Set storage set, bytes32 value) private view returns (bool);

Parameters

NameTypeDescription
setSet
valuebytes32

Returns

NameTypeDescription
<none>bool

_length

function _length(Set storage set) private view returns (uint256);

Parameters

NameTypeDescription
setSet

Returns

NameTypeDescription
<none>uint256

_at

function _at(Set storage set, uint256 index) private view returns (bytes32);

Parameters

NameTypeDescription
setSet
indexuint256

Returns

NameTypeDescription
<none>bytes32

_values

function _values(Set storage set) private view returns (bytes32[] memory);

Parameters

NameTypeDescription
setSet

Returns

NameTypeDescription
<none>bytes32[]

add

function add(Bytes32Set storage set, bytes32 value) internal returns (bool);

Parameters

NameTypeDescription
setBytes32Set
valuebytes32

Returns

NameTypeDescription
<none>bool

remove

function remove(Bytes32Set storage set, bytes32 value) internal returns (bool);

Parameters

NameTypeDescription
setBytes32Set
valuebytes32

Returns

NameTypeDescription
<none>bool

contains

function contains(Bytes32Set storage set, bytes32 value) internal view returns (bool);

Parameters

NameTypeDescription
setBytes32Set
valuebytes32

Returns

NameTypeDescription
<none>bool

length

function length(Bytes32Set storage set) internal view returns (uint256);

Parameters

NameTypeDescription
setBytes32Set

Returns

NameTypeDescription
<none>uint256

at

function at(Bytes32Set storage set, uint256 index) internal view returns (bytes32);

Parameters

NameTypeDescription
setBytes32Set
indexuint256

Returns

NameTypeDescription
<none>bytes32

values

function values(Bytes32Set storage set) internal view returns (bytes32[] memory);

Parameters

NameTypeDescription
setBytes32Set

Returns

NameTypeDescription
<none>bytes32[]

add

function add(AddressSet storage set, address value) internal returns (bool);

Parameters

NameTypeDescription
setAddressSet
valueaddress

Returns

NameTypeDescription
<none>bool

remove

function remove(AddressSet storage set, address value) internal returns (bool);

Parameters

NameTypeDescription
setAddressSet
valueaddress

Returns

NameTypeDescription
<none>bool

contains

function contains(AddressSet storage set, address value) internal view returns (bool);

Parameters

NameTypeDescription
setAddressSet
valueaddress

Returns

NameTypeDescription
<none>bool

length

function length(AddressSet storage set) internal view returns (uint256);

Parameters

NameTypeDescription
setAddressSet

Returns

NameTypeDescription
<none>uint256

at

function at(AddressSet storage set, uint256 index) internal view returns (address);

Parameters

NameTypeDescription
setAddressSet
indexuint256

Returns

NameTypeDescription
<none>address

values

function values(AddressSet storage set) internal view returns (address[] memory result);

Parameters

NameTypeDescription
setAddressSet

Returns

NameTypeDescription
resultaddress[]

add

function add(UintSet storage set, uint256 value) internal returns (bool);

Parameters

NameTypeDescription
setUintSet
valueuint256

Returns

NameTypeDescription
<none>bool

remove

function remove(UintSet storage set, uint256 value) internal returns (bool);

Parameters

NameTypeDescription
setUintSet
valueuint256

Returns

NameTypeDescription
<none>bool

contains

function contains(UintSet storage set, uint256 value) internal view returns (bool);

Parameters

NameTypeDescription
setUintSet
valueuint256

Returns

NameTypeDescription
<none>bool

length

function length(UintSet storage set) internal view returns (uint256);

Parameters

NameTypeDescription
setUintSet

Returns

NameTypeDescription
<none>uint256

at

function at(UintSet storage set, uint256 index) internal view returns (uint256);

Parameters

NameTypeDescription
setUintSet
indexuint256

Returns

NameTypeDescription
<none>uint256

values

function values(UintSet storage set) internal view returns (uint256[] memory result);

Parameters

NameTypeDescription
setUintSet

Returns

NameTypeDescription
resultuint256[]

add

function add(Bytes4Set storage set, bytes4 value) internal returns (bool);

Parameters

NameTypeDescription
setBytes4Set
valuebytes4

Returns

NameTypeDescription
<none>bool

remove

function remove(Bytes4Set storage set, bytes4 value) internal returns (bool);

Parameters

NameTypeDescription
setBytes4Set
valuebytes4

Returns

NameTypeDescription
<none>bool

contains

function contains(Bytes4Set storage set, bytes4 value) internal view returns (bool);

Parameters

NameTypeDescription
setBytes4Set
valuebytes4

Returns

NameTypeDescription
<none>bool

length

function length(Bytes4Set storage set) internal view returns (uint256);

Parameters

NameTypeDescription
setBytes4Set

Returns

NameTypeDescription
<none>uint256

at

function at(Bytes4Set storage set, uint256 index) internal view returns (bytes4);

Parameters

NameTypeDescription
setBytes4Set
indexuint256

Returns

NameTypeDescription
<none>bytes4

values

function values(Bytes4Set storage set) internal view returns (bytes4[] memory result);

Parameters

NameTypeDescription
setBytes4Set

Returns

NameTypeDescription
resultbytes4[]

Structs

Set

struct Set {
        bytes32[] _values;
        mapping(bytes32 value => uint256 position) _positions; // 1-based; 0 = absent
    }

Properties

NameTypeDescription
_valuesbytes32[]
_positionsmapping(bytes32 value => uint256 position)

AddressSet

struct AddressSet {
        Set _inner;
    }

Properties

NameTypeDescription
_innerSet

Bytes32Set

struct Bytes32Set {
        Set _inner;
    }

Properties

NameTypeDescription
_innerSet

UintSet

struct UintSet {
        Set _inner;
    }

Properties

NameTypeDescription
_innerSet

Bytes4Set

struct Bytes4Set {
        bytes4[] _values;
        mapping(bytes4 value => uint256 position) _positions;
    }

Properties

NameTypeDescription
_valuesbytes4[]
_positionsmapping(bytes4 value => uint256 position)