seq_marked/lib.rs
1//! # seq-marked
2//!
3//! Sequence-numbered values with tombstone support for LSM trees and versioned data.
4//!
5//! ## Core Types
6//!
7//! - [`Marked<D>`]: Data that can be marked as tombstone
8//! - [`SeqMarked<D>`]: Sequence-numbered marked value
9//!
10//! ## Example
11//!
12//! ```rust
13//! use seq_marked::SeqMarked;
14//!
15//! let v1 = SeqMarked::new_normal(1, "data");
16//! let v2 = SeqMarked::new_normal(2, "data");
17//! let v2_ts = SeqMarked::<&str>::new_tombstone(2);
18//!
19//! assert!(v1 < v2); // ordered by sequence
20//! assert!(v2 < v2_ts); // ordered by tombstone > normal
21//! ```
22
23mod expirable;
24mod marked;
25mod seq_marked;
26mod seq_value_trait;
27mod seqv;
28
29#[cfg(test)]
30pub(crate) mod testing;
31
32pub use expirable::Expirable;
33pub use marked::Marked;
34pub use seq_marked::SeqMarked;
35pub use seq_value_trait::SeqValue;
36pub use seqv::SeqV;