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