#[macro_export]
macro_rules! bitbuffer {
(@bit 0) => { false };
(@bit 1) => { true };
() => (
$crate::BitBuffer::empty()
);
(0) => {
$crate::BitBuffer::from_iter([false])
};
(1) => {
$crate::BitBuffer::from_iter([true])
};
($elem:expr; $n:expr) => (
$crate::BitBuffer::full($elem, $n)
);
($($x:expr),+ $(,)?) => (
$crate::BitBuffer::from_iter([$($x),+])
);
($($bit:tt)+) => {
$crate::BitBuffer::from_iter([$( $crate::bitbuffer!(@bit $bit) ),+])
};
}
#[macro_export]
macro_rules! bitbuffer_mut {
(@bit 0) => { false };
(@bit 1) => { true };
() => (
$crate::BitBufferMut::empty()
);
(0) => {
$crate::BitBuffer::from_iter([false])
};
(1) => {
$crate::BitBuffer::from_iter([true])
};
($elem:expr; $n:expr) => (
$crate::BitBufferMut::full($elem, $n)
);
($($x:expr),+ $(,)?) => (
$crate::BitBufferMut::from_iter([$($x),+])
);
($($bit:tt)+) => {
$crate::BitBufferMut::from_iter([$( $crate::bitbuffer_mut!(@bit $bit) ),+])
};
}