use std::collections::HashMap;
use std::hash::BuildHasherDefault;
use std::io::{Read, Seek};
use std::time::SystemTime;
use fnv::FnvHasher;
use reader::binary::from_binary_reader;
use reader::xml::from_xml_reader;
use reader::from_reader;
use result::Result;
#[derive(Debug, Clone, PartialEq)]
pub enum Plist {
Array(Array),
Dict(Dictionary),
Boolean(bool),
Data(Vec<u8>),
DateTime(SystemTime),
Real(f64),
Integer(i64),
String(String),
}
pub type Array = Vec<Plist>;
pub type Dictionary = HashMap<String, Plist, BuildHasherDefault<FnvHasher>>;
impl Plist {
pub fn from_binary_reader<R: Read + Seek>(input: &mut R) -> Result<Self> {
from_binary_reader(input)
}
pub fn from_xml_reader<R: Read>(input: &mut R) -> Result<Self> {
from_xml_reader(input)
}
pub fn from_reader<R: Read + Seek>(input: &mut R) -> Result<Self> {
from_reader(input)
}
}