intern_mint/
serde.rs

1use bstr::BString;
2use serde::{Deserialize, Deserializer, Serialize, Serializer};
3
4use crate::interned::Interned;
5
6impl Serialize for Interned {
7    fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
8    where
9        S: Serializer,
10    {
11        self.as_bstr().serialize(serializer)
12    }
13}
14
15impl<'de> Deserialize<'de> for Interned {
16    fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
17    where
18        D: Deserializer<'de>,
19    {
20        BString::deserialize(deserializer).map(|o| o.into())
21    }
22}