diff options
Diffstat (limited to 'src/serde/mod.rs')
| -rw-r--r-- | src/serde/mod.rs | 24 | 
1 files changed, 24 insertions, 0 deletions
| diff --git a/src/serde/mod.rs b/src/serde/mod.rs new file mode 100644 index 0000000..0c2d7fa --- /dev/null +++ b/src/serde/mod.rs @@ -0,0 +1,24 @@ +mod de; +mod ser; + +pub use self::de::Deserializer; +pub use self::ser::Serializer; + +use serde_base::{Deserialize, Serialize}; +use std::io::{Read, Seek, Write}; + +use Result; +use xml::EventReader; +use xml::EventWriter; + +pub fn deserialize<R: Read + Seek, T: Deserialize>(reader: R) -> Result<T> { +    let reader = EventReader::new(reader); +    let mut de = Deserializer::new(reader); +    Deserialize::deserialize(&mut de) +} + +pub fn serialize_to_xml<W: Write, T: Serialize>(writer: W, value: &T) -> Result<()> { +    let writer = EventWriter::new(writer); +    let mut ser = Serializer::new(writer); +    value.serialize(&mut ser) +} | 
