macro_rules! set { (priv $set:ident {$_:ident},) => { ... }; (priv-range $set:ident {$set_bit:ident}, $range:expr) => { ... }; (priv $set:ident {$($tt:tt)*}, $from:literal ..= $to:literal) => { ... }; (priv $set:ident {$($tt:tt)*}, $from:literal ..= $to:literal, $($rest:tt)*) => { ... }; (priv $set:ident {$($tt:tt)*}, $from:literal .. $to:literal) => { ... }; (priv $set:ident {$($tt:tt)*}, $from:literal .. $to:literal, $($rest:tt)*) => { ... }; (priv $set:ident {$($tt:tt)*}, $from:literal ..) => { ... }; (priv $set:ident {$($tt:tt)*}, $from:literal .., $($rest:tt)*) => { ... }; (priv $set:ident {$set_bit:ident}, $index:expr) => { ... }; (priv $set:ident {$($tt:tt)*}, $index:expr, $($rest:tt)*) => { ... }; ($($tt:tt)*) => { ... }; }
Expand description
Construct a bit set with specific values set using DefaultEndian
indexing.
Examples
use bittle::Bits;
let mask: u8 = bittle::set![0, 1, 3];
assert!(mask.iter_ones().eq([0, 1, 3]));
assert_eq!(mask, 0b00001011);
Set ranges of bits:
use bittle::Bits;
let mask: u8 = bittle::set![0..=4, 6..];
assert!(mask.iter_ones().eq([0, 1, 2, 3, 4, 6, 7]));