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.

Re-exports§

pub use bits::Bits;
pub use scale::decode_using_format_from;
pub use scale::encode_using_format;
pub use scale::encode_using_format_to;
pub use scale::format::Format;

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.