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}