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_data;
26mod seq_marked;
27mod seq_value_trait;
28mod seqv;
29
30#[cfg(test)]
31pub(crate) mod testing;
32
33pub use expirable::Expirable;
34pub use marked::Marked;
35pub use seq_data::SeqData;
36pub use seq_marked::InternalSeq;
37pub use seq_marked::SeqMarked;
38pub use seq_value_trait::SeqValue;
39pub use seqv::SeqV;