diff options
| author | Edward Barnard | 2017-01-07 10:53:37 +0000 |
|---|---|---|
| committer | Edward Barnard | 2017-02-02 20:26:56 +0000 |
| commit | b8787a29a3a8d4bdeedecccbd2ab3a9b386f7683 (patch) | |
| tree | bf11526cd4d2d23f9e1a85207bd4d70e57ea9b1a /src/serde/mod.rs | |
| parent | bf6b567f825421afb003322562dd229b8c1ce1a5 (diff) | |
| download | rust-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.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) +} |
