rusnap_utils/
bytes.rs

1//! Helpers for bytes
2
3use serde::{Deserialize, Deserializer, Serializer};
4
5pub fn serialize_bytes<S, T>(x: T, s: S) -> Result<S::Ok, S::Error>
6where
7    S: Serializer,
8    T: AsRef<[u8]>,
9{
10    s.serialize_str(&const_hex::encode_prefixed(x))
11}
12
13pub fn deserialize_bytes<'de, D>(d: D) -> Result<Vec<u8>, D::Error>
14where
15    D: Deserializer<'de>,
16{
17    let value = String::deserialize(d)?;
18    const_hex::decode(value)
19        .map(Into::into)
20        .map_err(serde::de::Error::custom)
21}
22
23pub use deserialize_bytes as deserialize;
24pub use serialize_bytes as serialize;