kodieren v0.2.0
kodieren 
Encoding related utilities
Installation
npm install kodierenTable of Contents generated with DocToc
API
dectoen
Derives an encoding map from a decoding table
Parameters
arrArray<T> encoding table
Returns Map<T, Number> decoding map
maskForBits
Gets the bit mask for the specified number of bits
Parameters
nNumber number of bits
Returns Number the bitmask, i.e. 111 for 3 bits
bitsToLayout
Takes a table of properties with bit length and derives bit layout from it. The bit layout is a hash map indexed by property name and each entry contains the index of the property in the bit field and it's mask needed to isolate it.
Example:
bitsToLayout([ [ 'foo', 2 ], [ 'bar', 4 ] ])
// => { foo: [ 0, 0b11 ], bar: [ 2, 0b1111 ] }Parameters
Returns Object<Array<Number, Number>>
shiftMask
Righ shifts the given number as specified and then applies the given mask. This is useful to isolate information from a bit field.
Example
shiftMask(0b100010110011, 4, 0b1111)
=> 0b1011Parameters
nNumber the number containing the information we wantdigitsNumber the amountmaskNumber the mask to apply after shifting
Returns Number the result after shift and mask was applied
isolate
Isolates some digits from a bit field
Parameters
bitsNumber the bit fieldidxNumber the index at which the digits to isolate start (from the right)lenNumber the amount of bits to isolate
Returns Number the isolated bits
number
An array of numbers whose index is equal it's value. Useful if we need to pass a table when encoding a number.
Type: Number
bin
Renders a binary representation of the given number padded as specified
Parameters
Returns String the rendered number
Encoder
Instantiates an encoder that uses the decodeArray to encode/decode to/from.
Example
const decodeArray = [ 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h' ]
const encoder = new Encoder(decodeArray, [ 0, 0b111 ])
const encoded = encoder.encode('c')
const decoded = encoder.decode(encoded)
console.log({ encoded, decoded })
// => { encoded: 2, decoded: 'c' }Parameters
decodeArrayArray<T> the decode/encode mapArray.null<Number, Number>[ bitIdx, mask ]used to isolate values from the given bitspreEncodefunction? conversion function run before an item is encoded (optional, defaultidentity)postDecodefunction? conversion function run after an item is decoded (optional, defaultidentity)
Returns Encoder instance
Encoder.encode
Encodes the item to bits according to the encoding table derived from the decodeArray
Parameters
itemT item to encode
Returns Number bits representing the item
Encoder.decode
Decodes the bits from the decodeArray
Parameters
bitsNumber bits to decode
Returns T the item represented by the bits
License
MIT