simple_sds_sbwt/
support.rs

1//! Utility functions, support structures, etc.
2
3use crate::bit_vector::BitVector;
4use crate::rl_vector::RLVector;
5use crate::sparse_vector::SparseVector;
6
7//-----------------------------------------------------------------------------
8
9// Conversions between bitvector types.
10macro_rules! bitvector_conversion {
11    ($source:ident, $target:ident) => {
12        impl From<$source> for $target {
13            fn from(source: $source) -> Self {
14                $target::copy_bit_vec(&source)
15            }
16        }
17    };
18}
19
20bitvector_conversion!(RLVector, BitVector);
21bitvector_conversion!(SparseVector, BitVector);
22
23bitvector_conversion!(BitVector, RLVector);
24bitvector_conversion!(SparseVector, RLVector);
25
26bitvector_conversion!(BitVector, SparseVector);
27bitvector_conversion!(RLVector, SparseVector);
28
29//-----------------------------------------------------------------------------