seq-marked 0.3.5

Sequence-numbered values with tombstone support for LSM trees and versioned data.
Documentation
use crate::SeqData;
use crate::SeqV;

impl<M, T> From<SeqData<(Option<M>, T)>> for SeqV<M, T> {
    fn from(value: SeqData<(Option<M>, T)>) -> Self {
        let (seq, (meta, v)) = value.into_parts();

        SeqV::new_with_meta(seq, meta, v)
    }
}

#[cfg(test)]
mod tests {
    use super::*;

    #[test]
    fn test_from_seq_marked_with_meta() {
        let seq_marked = SeqData::new(42, (Some("metadata".to_string()), 100u64));
        let seqv: SeqV<String, u64> = seq_marked.into();

        assert_eq!(seqv.seq, 42);
        assert_eq!(seqv.meta, Some("metadata".to_string()));
        assert_eq!(seqv.data, 100);
    }

    #[test]
    fn test_from_seq_marked_without_meta() {
        let seq_marked = SeqData::new(10, (None::<String>, 200u64));
        let seqv: SeqV<String, u64> = seq_marked.into();

        assert_eq!(seqv.seq, 10);
        assert_eq!(seqv.meta, None);
        assert_eq!(seqv.data, 200);
    }
}