aboutsummaryrefslogtreecommitdiffstats
path: root/src/lib.rs
diff options
context:
space:
mode:
authorEdward Barnard2015-12-22 12:34:39 +0000
committerEdward Barnard2015-12-22 12:34:39 +0000
commit2f9201a4f6a75b4c348ef63e37573f3c964908f0 (patch)
tree8a7fa88be54e08969292d295c9e67f7cd769717d /src/lib.rs
parent139c96123b04c2ed34d17cd0864ef5ae66676ef4 (diff)
downloadrust-plist-2f9201a4f6a75b4c348ef63e37573f3c964908f0.tar.bz2
Make Builder type private. Functionality is available in Plist::from_events.
Diffstat (limited to 'src/lib.rs')
-rw-r--r--src/lib.rs14
1 files changed, 12 insertions, 2 deletions
diff --git a/src/lib.rs b/src/lib.rs
index a5fa501..59524ae 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -7,8 +7,6 @@ pub mod binary;
pub mod xml;
mod builder;
-pub use builder::{Builder, BuilderError, BuilderResult};
-
use chrono::{DateTime, UTC};
use chrono::format::ParseError as ChronoParseError;
use std::collections::BTreeMap;
@@ -31,6 +29,18 @@ use rustc_serialize::base64::{STANDARD, ToBase64};
use rustc_serialize::json::Json as RustcJson;
impl Plist {
+ pub fn from_events<T>(events: T) -> Result<Plist, ()>
+ where T: IntoIterator<Item = ReadResult<PlistEvent>>
+ {
+ let iter = events.into_iter();
+ let builder = builder::Builder::new(iter);
+
+ match builder.build() {
+ Ok(plist) => Ok(plist),
+ Err(_) => Err(())
+ }
+ }
+
pub fn into_events(self) -> Vec<PlistEvent> {
let mut events = Vec::new();
self.into_events_inner(&mut events);