pub const DEFAULT_MEMTABLE_CAPACITY: usize = 4 * 1024 * 1024;
#[derive(Debug, Clone, PartialEq, Eq)]
pub struct LsmConfig {
memtable_capacity: usize,
}
impl LsmConfig {
#[inline]
#[must_use]
pub fn new() -> Self {
Self::default()
}
#[inline]
#[must_use]
pub fn memtable_capacity(mut self, bytes: usize) -> Self {
self.memtable_capacity = bytes;
self
}
#[inline]
#[must_use]
pub fn memtable_capacity_bytes(&self) -> usize {
self.memtable_capacity
}
}
impl Default for LsmConfig {
fn default() -> Self {
LsmConfig {
memtable_capacity: DEFAULT_MEMTABLE_CAPACITY,
}
}
}
#[cfg(test)]
#[allow(clippy::unwrap_used, clippy::expect_used)]
mod tests {
use super::*;
#[test]
fn test_default_capacity_is_documented_constant() {
assert_eq!(
LsmConfig::default().memtable_capacity_bytes(),
DEFAULT_MEMTABLE_CAPACITY
);
}
#[test]
fn test_builder_overrides_capacity() {
let c = LsmConfig::new().memtable_capacity(123);
assert_eq!(c.memtable_capacity_bytes(), 123);
}
#[test]
fn test_new_equals_default() {
assert_eq!(LsmConfig::new(), LsmConfig::default());
}
}