Coverage Report

Created: 2026-03-23 07:13

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/rust/registry/src/index.crates.io-1949cf8c6b5b557f/revision-0.17.0/src/implementations/regex.rs
Line
Count
Source
1
#![cfg(feature = "regex")]
2
3
use super::super::Error;
4
use super::super::{DeserializeRevisioned, Revisioned, SerializeRevisioned};
5
use super::vecs::serialize_bytes;
6
use regex::Regex;
7
8
impl SerializeRevisioned for Regex {
9
  #[inline]
10
0
  fn serialize_revisioned<W: std::io::Write>(&self, writer: &mut W) -> Result<(), Error> {
11
0
    serialize_bytes(self.as_str().as_bytes(), writer)
12
0
  }
Unexecuted instantiation: <regex::regex::string::Regex as revision::SerializeRevisioned>::serialize_revisioned::<alloc::vec::Vec<u8>>
Unexecuted instantiation: <regex::regex::string::Regex as revision::SerializeRevisioned>::serialize_revisioned::<_>
13
}
14
15
impl DeserializeRevisioned for Regex {
16
  #[inline]
17
0
  fn deserialize_revisioned<R: std::io::Read>(reader: &mut R) -> Result<Self, Error> {
18
0
    let s = String::deserialize_revisioned(reader)?;
19
0
    s.parse().map_err(|_| Error::Deserialize("invalid regex".to_string()))
Unexecuted instantiation: <regex::regex::string::Regex as revision::DeserializeRevisioned>::deserialize_revisioned::<&[u8]>::{closure#0}
Unexecuted instantiation: <regex::regex::string::Regex as revision::DeserializeRevisioned>::deserialize_revisioned::<_>::{closure#0}
20
0
  }
Unexecuted instantiation: <regex::regex::string::Regex as revision::DeserializeRevisioned>::deserialize_revisioned::<&[u8]>
Unexecuted instantiation: <regex::regex::string::Regex as revision::DeserializeRevisioned>::deserialize_revisioned::<_>
21
}
22
23
impl Revisioned for Regex {
24
  #[inline]
25
0
  fn revision() -> u16 {
26
0
    1
27
0
  }
28
}
29
30
#[cfg(test)]
31
mod tests {
32
  use super::*;
33
34
  #[test]
35
  fn test_regex() {
36
    let val = Regex::new("/this ([a-z]+) a tes?/").unwrap();
37
    let mut mem: Vec<u8> = vec![];
38
    val.serialize_revisioned(&mut mem).unwrap();
39
    #[cfg(not(feature = "fixed-width-encoding"))]
40
    assert_eq!(mem.len(), 23);
41
    #[cfg(feature = "fixed-width-encoding")]
42
    assert_eq!(mem.len(), 30);
43
    let out =
44
      <Regex as DeserializeRevisioned>::deserialize_revisioned(&mut mem.as_slice()).unwrap();
45
    assert_eq!(val.as_str(), out.as_str());
46
  }
47
}