bable 0.1.0

Badger's high performance sst table implementation
Documentation
use super::*;

impl SimpleBuilder {
    pub(super) fn new_in(opts: RefCounter<Options>) -> Result<Self> {
        if opts.compression().is_some() || opts.encryption().is_some() {
            panic!("Please use TableBuilder when enable encryption or compression.");
        }

        Ok(Self {
            buf: BytesMut::with_capacity((16 << 20) + opts.table_size() as usize),
            base_key: Default::default(),
            last_block_offset: 0,
            key_hashes: Default::default(),
            entry_offsets: Default::default(),
            table_index: Default::default(),
            stale_data_size: 0,
            max_version: 0,
            len_offsets: 0,
            opts,
        })
    }
}

impl super::TableData for super::SimpleBuildData {
    #[inline]
    fn size(&self) -> usize {
        self.data.len()
    }

    #[inline]
    fn write(self, mut dst: impl BufMut) -> Result<usize> {
        dst.put_slice(self.data.as_ref());
        Ok(self.data.len())
    }
}