bitcode 0.3.4

bitcode is a bitwise binary serializer
Documentation
pub use crate::encoding::Encoding;
pub use crate::nightly::ilog2_u64;
pub use crate::read::Read;
pub use crate::word::*;
pub use crate::write::Write;
pub(crate) use crate::{Result, E};

#[cfg(all(test))]
pub mod test_prelude {
    pub use super::*;
    pub use crate::{Decode, Encode};
    pub use std::fmt::Debug;

    #[cfg(all(test, debug_assertions))]
    pub fn test_encoding_inner<
        B: Read + Write + Default,
        V: Encode + Decode + Debug + PartialEq,
    >(
        encoding: impl Encoding,
        value: V,
    ) {
        let mut buffer = B::default();

        buffer.start_write();
        value.encode(encoding, &mut buffer).unwrap();
        let bytes = buffer.finish_write().to_owned();

        buffer.start_read(&bytes);
        assert_eq!(V::decode(encoding, &mut buffer).unwrap(), value);
        buffer.finish_read().unwrap();
    }

    #[cfg(all(test, debug_assertions))]
    pub fn test_encoding<V: Encode + Decode + Copy + Debug + PartialEq>(
        encoding: impl Encoding,
        value: V,
    ) {
        test_encoding_inner::<crate::bit_buffer::BitBuffer, V>(encoding, value);
        test_encoding_inner::<crate::word_buffer::WordBuffer, V>(encoding, value);
    }
}