aboutsummaryrefslogtreecommitdiffstats
path: root/src/serde/mod.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/serde/mod.rs')
-rw-r--r--src/serde/mod.rs24
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)
+}