Function dehexify_vec_then_deserialize_into

Source
pub fn dehexify_vec_then_deserialize_into<'de, D, T>(
    hex: D,
) -> Result<T, D::Error>
where D: Deserializer<'de>, T: From<Vec<u8>>,
Expand description

Deserialize hex to T where T: From<Vec<u8>>.

ยงExamples

use serde::Deserialize;

#[derive(Debug, PartialEq)]
struct Ljf(Vec<u8>);
impl From<Vec<u8>> for Ljf {
	fn from(vec: Vec<u8>) -> Self {
		Self(vec)
	}
}

#[derive(Debug, PartialEq, Deserialize)]
struct WrappedLjf {
	#[serde(deserialize_with = "array_bytes::dehexify_vec_then_deserialize_into")]
	ljf: Ljf,
}

assert_eq!(
	serde_json::from_str::<WrappedLjf>(r#"{
		"ljf": "0x4c6f7665204a616e6520466f7265766572"
	}"#).unwrap(),
	WrappedLjf {
		ljf: Ljf(b"Love Jane Forever".to_vec())
	}
);