authnz-common 0.2.1

Authnz common library (types and utils).
Documentation
pub(crate) struct VecVisitor;

impl<'de> serde::de::Visitor<'de> for VecVisitor {
  type Value = Vec<u8>;

  fn expecting(&self, formatter: &mut std::fmt::Formatter) -> std::fmt::Result {
    formatter.write_str("bytes or sequence")
  }

  fn visit_bytes<E: serde::de::Error>(self, v: &[u8]) -> Result<Self::Value, E> {
    Ok(v.to_vec())
  }

  fn visit_seq<A: serde::de::SeqAccess<'de>>(self, mut seq: A) -> Result<Self::Value, A::Error> {
    let mut v = if let Some(size_hint) = seq.size_hint() {
      Vec::with_capacity(size_hint)
    } else {
      Vec::new()
    };
    while let Ok(Some(el)) = seq.next_element::<u8>() {
      v.push(el);
    }
    Ok(v)
  }
}