EnumerableSetMock.sol 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110
  1. // SPDX-License-Identifier: MIT
  2. pragma solidity ^0.8.0;
  3. import "../utils/structs/EnumerableSet.sol";
  4. // Bytes32Set
  5. contract EnumerableBytes32SetMock {
  6. using EnumerableSet for EnumerableSet.Bytes32Set;
  7. event OperationResult(bool result);
  8. EnumerableSet.Bytes32Set private _set;
  9. function contains(bytes32 value) public view returns (bool) {
  10. return _set.contains(value);
  11. }
  12. function add(bytes32 value) public {
  13. bool result = _set.add(value);
  14. emit OperationResult(result);
  15. }
  16. function remove(bytes32 value) public {
  17. bool result = _set.remove(value);
  18. emit OperationResult(result);
  19. }
  20. function length() public view returns (uint256) {
  21. return _set.length();
  22. }
  23. function at(uint256 index) public view returns (bytes32) {
  24. return _set.at(index);
  25. }
  26. function values() public view returns (bytes32[] memory) {
  27. return _set.values();
  28. }
  29. }
  30. // AddressSet
  31. contract EnumerableAddressSetMock {
  32. using EnumerableSet for EnumerableSet.AddressSet;
  33. event OperationResult(bool result);
  34. EnumerableSet.AddressSet private _set;
  35. function contains(address value) public view returns (bool) {
  36. return _set.contains(value);
  37. }
  38. function add(address value) public {
  39. bool result = _set.add(value);
  40. emit OperationResult(result);
  41. }
  42. function remove(address value) public {
  43. bool result = _set.remove(value);
  44. emit OperationResult(result);
  45. }
  46. function length() public view returns (uint256) {
  47. return _set.length();
  48. }
  49. function at(uint256 index) public view returns (address) {
  50. return _set.at(index);
  51. }
  52. function values() public view returns (address[] memory) {
  53. return _set.values();
  54. }
  55. }
  56. // UintSet
  57. contract EnumerableUintSetMock {
  58. using EnumerableSet for EnumerableSet.UintSet;
  59. event OperationResult(bool result);
  60. EnumerableSet.UintSet private _set;
  61. function contains(uint256 value) public view returns (bool) {
  62. return _set.contains(value);
  63. }
  64. function add(uint256 value) public {
  65. bool result = _set.add(value);
  66. emit OperationResult(result);
  67. }
  68. function remove(uint256 value) public {
  69. bool result = _set.remove(value);
  70. emit OperationResult(result);
  71. }
  72. function length() public view returns (uint256) {
  73. return _set.length();
  74. }
  75. function at(uint256 index) public view returns (uint256) {
  76. return _set.at(index);
  77. }
  78. function values() public view returns (uint256[] memory) {
  79. return _set.values();
  80. }
  81. }