macro_rules! BitArr {
(for $len:expr, in $order:ty, $store:ty $(,)?) => { ... };
(for $len:expr, in $store:ty $(,)?) => { ... };
(for $len:expr) => { ... };
}
Expand description
Constructs a type definition for a BitArray
.
This macro takes a minimum number of bits, and optionally a set of BitOrder
and BitStore
implementors, and creates a BitArray
type definition that
satisfies them. Because this macro is used in type position, it uses
PascalCase
rather than snake_case
for its name.
Grammar
use bitvec::prelude::*;
use core::cell::Cell;
const CENT: usize = bitvec::mem::elts::<usize>(100);
let a: BitArr!(for 100)
= BitArray::<Lsb0, [usize; CENT]>::zeroed();
let b: BitArr!(for 100, in u32)
= BitArray::<Lsb0, [u32; 4]>::zeroed();
let c: BitArr!(for 100, in Msb0, Cell<u16>)
= BitArray::<Msb0, [Cell<u16>; 7]>::zeroed();
The length expression must be a const
-expression. It may be a literal or a
named const
expression. The type arguments have no restrictions, so long as
they resolve to valid trait implementors.