Crate scale_bits

Crate scale_bits 

Source
Expand description

This small utility crate provides two separate things:

  1. A Bits type that can be SCALE encoded and decoded, and is fully SCALE compatible with a BitVec<u8, Lsb0>. It’s a deliberately simple type that is conceptually just a sequence of bools, and can be used as a replacement for BitVec when you don’t need the additional complexity and functionality that it comes with. See the bits module for more.
  2. Utility methods to help encode and decode arbitrary bit sequences from their SCALE representation, or skip over the corresponding bytes entirely, with zero allocations. These bypass the need to first go via some BitVec with the right store/order type, and are WASM compatible (unlike BitVec’s u64 store type). See the scale module for more.

These things play nicely together (ie you can encode and decode arbitrary bit sequences directly into the Bits type), but don’t need to be used together.

Modules§

bits
This module exposes a Bits type, which is a small, simple bit store which is SCALE compatible with BitVec<u8, Lsb0>.
scale
This module exposes some utilities for working with SCALE bit sequences, namely:

Macros§

bits
This macro makes it trivial to construct Bits from either 0 and 1 bit literals, or booleans.

Structs§

Bits
This represents a sequence of boolean values, packed into bits.
Format
A description of the format used to SCALE encode some bits.

Functions§

decode_using_format_from
SCALE decode a bit sequence using the given format, handing back an iterator of booleans.
encode_using_format
This is a convenience wrapper around encode_using_format_to.
encode_using_format_to
SCALE encode an iterator of booleans with a known size into a bit sequence using the given format.