diff options
| author | Edward Barnard | 2015-12-25 10:58:30 +0000 |
|---|---|---|
| committer | Edward Barnard | 2015-12-26 19:36:19 +0000 |
| commit | 261510a0c61da1afbbb4c5876023e2210fc60901 (patch) | |
| tree | 27022989f7297c175462fc864ecfa577c10681e6 /src/lib.rs | |
| parent | 35ee8e80f25d852620061fc6e9627485467d12ea (diff) | |
| download | rust-plist-261510a0c61da1afbbb4c5876023e2210fc60901.tar.bz2 | |
Add serialization utility methods
Diffstat (limited to 'src/lib.rs')
| -rw-r--r-- | src/lib.rs | 18 |
1 files changed, 16 insertions, 2 deletions
@@ -48,15 +48,28 @@ mod builder; mod de; mod ser; -pub use de::Deserializer; +pub use de::{Deserializer, DeserializeError}; pub use ser::Serializer; use chrono::{DateTime, UTC}; use chrono::format::ParseError as ChronoParseError; +use serde::{Deserialize, Serialize}; use std::collections::BTreeMap; -use std::io::{Read, Seek, SeekFrom}; +use std::io::{Read, Seek, SeekFrom, Write}; use std::io::Error as IoError; +pub fn deserialize<R: Read + Seek, T: Deserialize>(reader: R) -> ::std::result::Result<T, DeserializeError> { + 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 = xml::EventWriter::new(writer); + let mut ser = Serializer::new(writer); + value.serialize(&mut ser) +} + #[derive(Clone, Debug, PartialEq)] pub enum Plist { Array(Vec<Plist>), @@ -154,6 +167,7 @@ impl Plist { /// ``` #[derive(Clone, Debug, PartialEq)] pub enum PlistEvent { + // TODO: Kill these. They're unnecessary. StartPlist, EndPlist, |
