xmlity/types/
primitive.rs

1use 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);