1use 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;