trine-kv 0.2.0

Embedded LSM MVCC key-value database.
Documentation
use crate::types::Sequence;

/// Sequence number pinned by a snapshot.
pub type SnapshotSequence = Sequence;

#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub struct Visibility {
    read_sequence: SnapshotSequence,
}

impl Visibility {
    #[must_use]
    pub const fn new(read_sequence: SnapshotSequence) -> Self {
        Self { read_sequence }
    }

    #[must_use]
    pub const fn read_sequence(self) -> SnapshotSequence {
        self.read_sequence
    }

    #[must_use]
    pub const fn can_see(self, sequence: Sequence) -> bool {
        sequence.get() <= self.read_sequence.get()
    }
}