Function dehexify_array_then_deserialize_into

Source
pub fn dehexify_array_then_deserialize_into<'de, D, T, const N: usize>(
    hex: D,
) -> Result<T, D::Error>
where D: Deserializer<'de>, T: From<[u8; N]>,
Expand description

Deserialize hex to T where T: From<[u8; N]>.

ยงExamples

use serde::Deserialize;

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

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

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