aboutsummaryrefslogtreecommitdiffstats
path: root/src/serde/mod.rs
diff options
context:
space:
mode:
authorEdward Barnard2017-01-07 10:53:37 +0000
committerEdward Barnard2017-02-02 20:26:56 +0000
commitb8787a29a3a8d4bdeedecccbd2ab3a9b386f7683 (patch)
treebf11526cd4d2d23f9e1a85207bd4d70e57ea9b1a /src/serde/mod.rs
parentbf6b567f825421afb003322562dd229b8c1ce1a5 (diff)
downloadrust-plist-b8787a29a3a8d4bdeedecccbd2ab3a9b386f7683.tar.bz2
Support Serde 0.8. Bump minimum Rust version to 0.15.
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)
+}