Skip to content

Commit

Permalink
Add functions for reading a non-seekable ASCII plist
Browse files Browse the repository at this point in the history
  • Loading branch information
ebarnard committed Jun 30, 2024
1 parent b5846b0 commit cdf0aa0
Show file tree
Hide file tree
Showing 3 changed files with 17 additions and 3 deletions.
7 changes: 7 additions & 0 deletions src/de.rs
Original file line number Diff line number Diff line change
Expand Up @@ -428,6 +428,13 @@ pub fn from_reader<R: Read + Seek, T: de::DeserializeOwned>(reader: R) -> Result
de::Deserialize::deserialize(&mut de)
}

/// Deserializes an instance of type `T` from a byte stream containing an ASCII encoded plist.
pub fn from_reader_ascii<R: Read, T: de::DeserializeOwned>(reader: R) -> Result<T, Error> {
let reader = stream::AsciiReader::new(reader);
let mut de = Deserializer::new(reader);
de::Deserialize::deserialize(&mut de)
}

/// Deserializes an instance of type `T` from a byte stream containing an XML encoded plist.
pub fn from_reader_xml<R: Read, T: de::DeserializeOwned>(reader: R) -> Result<T, Error> {
let reader = stream::XmlReader::new(reader);
Expand Down
2 changes: 1 addition & 1 deletion src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -118,7 +118,7 @@ mod ser;
pub use self::{de::Deserializer, ser::Serializer};
#[cfg(feature = "serde")]
pub use self::{
de::{from_bytes, from_file, from_reader, from_reader_xml, from_value},
de::{from_bytes, from_file, from_reader, from_reader_ascii, from_reader_xml, from_value},
ser::{
to_file_binary, to_file_xml, to_value, to_writer_binary, to_writer_xml,
to_writer_xml_with_options,
Expand Down
11 changes: 9 additions & 2 deletions src/value.rs
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,8 @@ use std::{
use crate::{
error::{self, Error, ErrorKind, EventKind},
stream::{
private, BinaryWriter, Event, Events, Reader, Writer, XmlReader, XmlWriteOptions, XmlWriter,
private, AsciiReader, BinaryWriter, Event, Events, Reader, Writer, XmlReader,
XmlWriteOptions, XmlWriter,
},
u64_to_usize, Date, Dictionary, Integer, Uid,
};
Expand Down Expand Up @@ -41,7 +42,13 @@ impl Value {
Value::from_events(reader)
}

/// Reads a `Value` from a seekable byte stream containing an XML encoded plist.
/// Reads a `Value` from a byte stream containing an ASCII encoded plist.
pub fn from_reader_ascii<R: Read>(reader: R) -> Result<Value, Error> {
let reader = AsciiReader::new(reader);
Value::from_events(reader)
}

/// Reads a `Value` from a byte stream containing an XML encoded plist.
pub fn from_reader_xml<R: Read>(reader: R) -> Result<Value, Error> {
let reader = XmlReader::new(reader);
Value::from_events(reader)
Expand Down

0 comments on commit cdf0aa0

Please sign in to comment.