seq_marked/seqv/
impl_from_seq_data.rs1use crate::SeqData;
2use crate::SeqV;
3
4impl<M, T> From<SeqData<(Option<M>, T)>> for SeqV<M, T> {
5 fn from(value: SeqData<(Option<M>, T)>) -> Self {
6 let (seq, (meta, v)) = value.into_parts();
7
8 SeqV::new_with_meta(seq, meta, v)
9 }
10}
11
12#[cfg(test)]
13mod tests {
14 use super::*;
15
16 #[test]
17 fn test_from_seq_marked_with_meta() {
18 let seq_marked = SeqData::new(42, (Some("metadata".to_string()), 100u64));
19 let seqv: SeqV<String, u64> = seq_marked.into();
20
21 assert_eq!(seqv.seq, 42);
22 assert_eq!(seqv.meta, Some("metadata".to_string()));
23 assert_eq!(seqv.data, 100);
24 }
25
26 #[test]
27 fn test_from_seq_marked_without_meta() {
28 let seq_marked = SeqData::new(10, (None::<String>, 200u64));
29 let seqv: SeqV<String, u64> = seq_marked.into();
30
31 assert_eq!(seqv.seq, 10);
32 assert_eq!(seqv.meta, None);
33 assert_eq!(seqv.data, 200);
34 }
35}