add basic type serialisation (bool, char and numbers)

This commit is contained in:
Marc-Antoine Arnaud 2018-05-15 19:35:14 +02:00
parent 455ba9aa43
commit c97d1d21f9

View File

@ -8,6 +8,7 @@ extern crate xml;
extern crate yaserde_derive;
use std::io::{Read, Write};
use xml::writer::XmlEvent;
pub mod de;
pub mod ser;
@ -36,3 +37,33 @@ pub trait Visitor<'de>: Sized {
self.visit_str(&v)
}
}
macro_rules! serialize_type {
($type:ty) => (
impl YaSerialize for $type {
fn serialize<W: Write>(&self, writer: &mut ser::Serializer<W>) -> Result<(), String> {
let content = format!("{}", self);
let event = XmlEvent::characters(&content);
let _ret = writer.write(event);
Ok(())
}
}
)
}
serialize_type!(bool);
serialize_type!(char);
serialize_type!(u8);
serialize_type!(u16);
serialize_type!(u32);
serialize_type!(u64);
serialize_type!(i8);
serialize_type!(i16);
serialize_type!(i32);
serialize_type!(i64);
serialize_type!(f32);
serialize_type!(f64);