xmlity/types/
primitive.rs1use crate::de::{Deserialize, Deserializer};
2use crate::ser::{Serialize, Serializer};
3use crate::types::string::FromStrVisitor;
4
5macro_rules! impl_serialize_for_primitive {
6 ($($t:ty),*) => {
7 $(
8 impl Serialize for $t {
9 fn serialize<S: Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
10 serializer.serialize_text(self.to_string())
11 }
12 }
13 )*
14 };
15}
16
17impl_serialize_for_primitive!(u8, u16, u32, u64, u128, i8, i16, i32, i64, i128);
18
19macro_rules! impl_deserialize_for_primitive {
20 ($($t:ty),*) => {
21 $(
22 impl<'de> Deserialize<'de> for $t {
23 fn deserialize<D: Deserializer<'de>>(reader: D) -> Result<Self, D::Error> {
24 reader.deserialize_any(FromStrVisitor::default())
25 }
26 }
27 )*
28 };
29}
30
31impl_deserialize_for_primitive!(u8, u16, u32, u64, u128, i8, i16, i32, i64, i128);