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) +} |
