local_fmt/
serde.rs

1use std::str::FromStr;
2
3use crate::{AllocMessage, RefMessage};
4
5impl<'de, const N: usize> serde::Deserialize<'de> for AllocMessage<N> {
6    fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
7    where
8        D: serde::Deserializer<'de>,
9    {
10        let text = String::deserialize(deserializer)?;
11
12        Self::from_str(&text).map_err(serde::de::Error::custom)
13    }
14}
15
16impl<const N: usize> serde::Serialize for AllocMessage<N> {
17    fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
18    where
19        S: serde::Serializer,
20    {
21        serializer.serialize_str(&self.to_string())
22    }
23}
24
25impl<const N: usize> serde::Serialize for RefMessage<'_, N> {
26    fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
27    where
28        S: serde::Serializer,
29    {
30        serializer.serialize_str(&self.to_string())
31    }
32}