67 lines
1.5 KiB
Solidity
67 lines
1.5 KiB
Solidity
|
// SPDX-License-Identifier: MIT
|
||
|
|
||
|
pragma solidity ^0.6.0;
|
||
|
|
||
|
import "../utils/EnumerableSet.sol";
|
||
|
|
||
|
// AddressSet
|
||
|
contract EnumerableAddressSetMock {
|
||
|
using EnumerableSet for EnumerableSet.AddressSet;
|
||
|
|
||
|
event OperationResult(bool result);
|
||
|
|
||
|
EnumerableSet.AddressSet private _set;
|
||
|
|
||
|
function contains(address value) public view returns (bool) {
|
||
|
return _set.contains(value);
|
||
|
}
|
||
|
|
||
|
function add(address value) public {
|
||
|
bool result = _set.add(value);
|
||
|
emit OperationResult(result);
|
||
|
}
|
||
|
|
||
|
function remove(address value) public {
|
||
|
bool result = _set.remove(value);
|
||
|
emit OperationResult(result);
|
||
|
}
|
||
|
|
||
|
function length() public view returns (uint256) {
|
||
|
return _set.length();
|
||
|
}
|
||
|
|
||
|
function at(uint256 index) public view returns (address) {
|
||
|
return _set.at(index);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
// UintSet
|
||
|
contract EnumerableUintSetMock {
|
||
|
using EnumerableSet for EnumerableSet.UintSet;
|
||
|
|
||
|
event OperationResult(bool result);
|
||
|
|
||
|
EnumerableSet.UintSet private _set;
|
||
|
|
||
|
function contains(uint256 value) public view returns (bool) {
|
||
|
return _set.contains(value);
|
||
|
}
|
||
|
|
||
|
function add(uint256 value) public {
|
||
|
bool result = _set.add(value);
|
||
|
emit OperationResult(result);
|
||
|
}
|
||
|
|
||
|
function remove(uint256 value) public {
|
||
|
bool result = _set.remove(value);
|
||
|
emit OperationResult(result);
|
||
|
}
|
||
|
|
||
|
function length() public view returns (uint256) {
|
||
|
return _set.length();
|
||
|
}
|
||
|
|
||
|
function at(uint256 index) public view returns (uint256) {
|
||
|
return _set.at(index);
|
||
|
}
|
||
|
}
|