@chainsafe/bit-utils
v0.1.6
Published
bitlist and bitvector utilities
Downloads
172
Readme
bit-utils
Bitlist/Bitvector Utilities
Install
npm install @chainsafe/bit-utils
Examples
BitList
import {BitList} from "@chainsafe/bit-utils";
// A BitList is created from a Uint8Array bitfield and a length of bits
const list: BitList = BitList.fromBitfield(Buffer.from([3]), 3);
// Or a BitList can be deserialized from a Uint8Array bitfield with a padding bit marking the length
const list2: BitList = BitList.deserialize(Buffer.from([11]));
// get length of bits
const _bitLength = list.bitLength;
// set bit
list.setBit(0, true);
// get bit
list.getBit(0) === true;
// serialize bitlist (without padding bit)
const output: Uint8Array = list.toBitfield();
// serialize bitlist (with padding bit)
const output2: Uint8Array = list.serialize();
BitVector
import {BitVector} from "@chainsafe/bit-utils";
// A BitVector is created from a Uint8Array bitfield and a length of bits
const vector: BitVector = BitVector.fromBitfield(Buffer.from([3]), 3);
// get length of bits
const _bitLength = vector.bitLength;
// set bit
vector.setBit(0, true);
// get bit
vector.getBit(0) === true
// serialize bitvector (loses length information)
const output: Uint8Array = vector.toBitfield();
API
See our autogenerated API docs
License
Apache 2.0