Packing

Git Source

Functions

pack_uint8x16

Packs up to 16 uint8 values into a single bytes32. Unfilled slots are set to 0.

function pack_uint8x16(uint8[] memory array) internal pure returns (bytes32 packed);

unpack_uint8x16

Unpacks a bytes32 into uint8 values, stopping at the first zero

function unpack_uint8x16(bytes32 packed) internal pure returns (uint8[] memory array);

pack_uint64x4

Packs up to 4 uint64 values into a bytes32. Fills missing slots with 0.

function pack_uint64x4(uint64[] memory array) internal pure returns (bytes32 packed);

unpack_uint64x4

Unpacks a bytes32 into up to 4 uint64s, skipping zero values

function unpack_uint64x4(bytes32 packed) internal pure returns (uint64[] memory array);

pack_uint64x16

Packs up to 16 uint64s into 4 bytes32 values. Fills missing slots with 0.

function pack_uint64x16(uint64[] memory array) internal pure returns (bytes32 p0, bytes32 p1, bytes32 p2, bytes32 p3);

unpack_uint64x16

Unpacks 4 bytes32 values into an array of up to 16 uint64s, skipping zero values

function unpack_uint64x16(bytes32 p0, bytes32 p1, bytes32 p2, bytes32 p3)
    internal
    pure
    returns (uint64[] memory array);

_pack4

function _pack4(uint64[] memory a, uint256 offset) private pure returns (bytes32 out);

_unpack4

function _unpack4(bytes32 b, uint64[] memory a, uint256 offset) private pure returns (uint256 newOffset);