Macro scale_bits::bits
source · macro_rules! bits {
($($val:tt),* $(,)*) => { ... };
(__internal__ $bits:ident: 1 $(,$rest:tt)* $(,)?) => { ... };
(__internal__ $bits:ident: 0 $(,$rest:tt)* $(,)?) => { ... };
(__internal__ $bits:ident: $bool:expr $(,$rest:tt)* $(,)?) => { ... };
(__internal__ $bits:ident: $(,)?) => { ... };
}
Expand description
This macro makes it trivial to construct Bits
from either 0 and 1 bit
literals, or booleans.
use scale_bits::bits;
// Using 1 and 0 literals to represent the bits:
let bits = bits![1,1,0,1,0,1];
assert_eq!(bits.to_vec(), vec![true, true, false, true, false, true]);
// Using true and false to represent the bits:
let bits = bits![true, true, false, true, false, true];
assert_eq!(bits.to_vec(), vec![true, true, false, true, false, true]);
// These don't have to be literals:
let t = true;
let f = false;
let bits = bits![t,t,f,t,f,t];
assert_eq!(bits.to_vec(), vec![true, true, false, true, false, true]);