use data_encoding::HEXLOWER; | |
use serde::{self, Deserialize, Deserializer, Serializer}; | |
use std::result::Result; | |
pub fn serialize<S>(value: &[u8], serializer: S) -> Result<S::Ok, S::Error> | |
where | |
S: Serializer, | |
{ | |
serializer.serialize_str(&HEXLOWER.encode(value)) | |
} | |
pub fn deserialize<'de, D>(deserializer: D) -> Result<Vec<u8>, D::Error> | |
where | |
D: Deserializer<'de>, | |
{ | |
let s = String::deserialize(deserializer)?; | |
HEXLOWER | |
.decode(s.as_bytes()) | |
.map_err(serde::de::Error::custom) | |
} |