|
|
|
@ -14,8 +14,8 @@ library BitMaps { |
|
|
|
|
* @dev Returns whether the bit at `index` is set. |
|
|
|
|
*/ |
|
|
|
|
function get(BitMap storage bitmap, uint256 index) internal view returns (bool) { |
|
|
|
|
uint256 bucket = index / 256; |
|
|
|
|
uint256 mask = 1 << (index % 256); |
|
|
|
|
uint256 bucket = index >> 8; |
|
|
|
|
uint256 mask = 1 << (index & 0xff); |
|
|
|
|
return bitmap._data[bucket] & mask != 0; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
@ -38,8 +38,8 @@ library BitMaps { |
|
|
|
|
* @dev Sets the bit at `index`. |
|
|
|
|
*/ |
|
|
|
|
function set(BitMap storage bitmap, uint256 index) internal { |
|
|
|
|
uint256 bucket = index / 256; |
|
|
|
|
uint256 mask = 1 << (index % 256); |
|
|
|
|
uint256 bucket = index >> 8; |
|
|
|
|
uint256 mask = 1 << (index & 0xff); |
|
|
|
|
bitmap._data[bucket] |= mask; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
@ -47,8 +47,8 @@ library BitMaps { |
|
|
|
|
* @dev Unsets the bit at `index`. |
|
|
|
|
*/ |
|
|
|
|
function unset(BitMap storage bitmap, uint256 index) internal { |
|
|
|
|
uint256 bucket = index / 256; |
|
|
|
|
uint256 mask = 1 << (index % 256); |
|
|
|
|
uint256 bucket = index >> 8; |
|
|
|
|
uint256 mask = 1 << (index & 0xff); |
|
|
|
|
bitmap._data[bucket] &= ~mask; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|