pub fn from_bytes<'d, T: serde::Deserialize<'d>, B: AsRef<[u8]>>(b: B) -> Result<T, crate::DeserializeError> {
let c = std::io::Cursor::new(b);
let mut d = crate::Deserializer::from(c);
T::deserialize(&mut d)
}
pub fn from_file<'d, T: serde::Deserialize<'d>, P: AsRef<std::path::Path>>(p: P) -> Result<T, crate::DeserializeError> {
let f = std::fs::File::open(p)?;
let f = std::io::BufReader::new(f);
let mut d = crate::Deserializer::from(f);
T::deserialize(&mut d)
}
pub fn from_reader<
'd,
T: serde::Deserialize<'d>,
R: std::io::Read + std::io::Seek + Send + Sync
> (
r: R
) -> Result<T, crate::DeserializeError>
{
let r = std::io::BufReader::new(r);
let mut d = crate::Deserializer::from(r);
T::deserialize(&mut d)
}