use serde::{Serialize, Deserialize, Serializer, Deserializer};
use serde::de;
/// Only expanded in the original crate with the feature "serde_support" enabled.
impl Serialize for FixedStr$len {
fn serialize<S: Serializer>(&'_ self, serializer: S) -> Result<S::Ok, S::Error> {
serializer.serialize_str(&self[..])
}
}
struct FixedStr$lenVisitor;
impl<'de> de::Visitor<'de> for FixedStr$lenVisitor {
type Value = FixedStr$len;
fn expecting<'a>(&'a self, formatter: &'a mut Formatter) -> FmtResult {
formatter.write_str("a string less or equal to $len bytes")
}
fn visit_str<E: de::Error>(self, s: &'_ str) -> Result<Self::Value, E> {
if s.len() <= $len {
Ok(FixedStr$len::from(s))
} else {
Err(de::Error::invalid_value(de::Unexpected::Str(s), &self))
}
}
}
/// Only expanded in the original crate with the feature "serde_support" enabled.
impl<'de> Deserialize<'de> for FixedStr$len {
fn deserialize<D: Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
deserializer.deserialize_str(FixedStr$lenVisitor)
}
}