Coverage Report

Created: 2025-10-10 07:11

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/rust/registry/src/index.crates.io-1949cf8c6b5b557f/revision-0.10.0/src/implementations/vecs.rs
Line
Count
Source
1
use super::super::Error;
2
use super::super::Revisioned;
3
4
0
pub(crate) fn serialize_slice<T, W>(v: &[T], writer: &mut W) -> Result<(), Error>
5
0
where
6
0
  W: std::io::Write,
7
0
  T: Revisioned,
8
{
9
0
  v.len().serialize_revisioned(writer)?;
10
0
  for v in v {
11
0
    v.serialize_revisioned(writer)?;
12
  }
13
0
  Ok(())
14
0
}
Unexecuted instantiation: revision::implementations::vecs::serialize_slice::<surrealkv::manifest::ManifestChangeType, alloc::vec::Vec<u8>>
Unexecuted instantiation: revision::implementations::vecs::serialize_slice::<u8, alloc::vec::Vec<u8>>
Unexecuted instantiation: revision::implementations::vecs::serialize_slice::<_, _>
15
16
impl<T> Revisioned for Vec<T>
17
where
18
  T: Revisioned,
19
{
20
  #[inline]
21
0
  fn serialize_revisioned<W: std::io::Write>(&self, writer: &mut W) -> Result<(), Error> {
22
0
    serialize_slice(self.as_slice(), writer)
23
0
  }
Unexecuted instantiation: <alloc::vec::Vec<surrealkv::manifest::ManifestChangeType> as revision::Revisioned>::serialize_revisioned::<alloc::vec::Vec<u8>>
Unexecuted instantiation: <alloc::vec::Vec<_> as revision::Revisioned>::serialize_revisioned::<_>
24
25
  #[inline]
26
0
  fn deserialize_revisioned<R: std::io::Read>(reader: &mut R) -> Result<Self, Error> {
27
0
    let len = usize::deserialize_revisioned(reader)?;
28
0
    let mut vec = Vec::with_capacity(len);
29
0
    for _ in 0..len {
30
0
      let v: T = T::deserialize_revisioned(reader)?;
31
0
      vec.push(v);
32
    }
33
0
    Ok(vec)
34
0
  }
Unexecuted instantiation: <alloc::vec::Vec<surrealkv::manifest::ManifestChangeType> as revision::Revisioned>::deserialize_revisioned::<&[u8]>
Unexecuted instantiation: <alloc::vec::Vec<u8> as revision::Revisioned>::deserialize_revisioned::<&[u8]>
Unexecuted instantiation: <alloc::vec::Vec<_> as revision::Revisioned>::deserialize_revisioned::<_>
35
36
0
  fn revision() -> u16 {
37
0
    1
38
0
  }
39
}
40
41
#[cfg(test)]
42
mod tests {
43
44
  use super::Revisioned;
45
46
  #[test]
47
  fn test_vec() {
48
    let val: Vec<String> =
49
      vec![String::from("this"), String::from("is"), String::from("a"), String::from("test")];
50
    let mut mem: Vec<u8> = vec![];
51
    val.serialize_revisioned(&mut mem).unwrap();
52
    assert_eq!(mem.len(), 16);
53
    let out = <Vec<String> as Revisioned>::deserialize_revisioned(&mut mem.as_slice()).unwrap();
54
    assert_eq!(val, out);
55
  }
56
}