Skip to content

Commit

Permalink
Merge pull request #116 from devwckd/feat/from-reader-with-opts
Browse files Browse the repository at this point in the history
feat(fastnbt): add `from_reader_with_opts`
  • Loading branch information
owengage authored May 14, 2024
2 parents ad0e8d8 + 639f39a commit 0ea1a33
Showing 1 changed file with 31 additions and 5 deletions.
36 changes: 31 additions & 5 deletions fastnbt/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -347,6 +347,33 @@ where
from_bytes_with_opts(input, Default::default())
}

/// Deserialize into a `T` from some NBT data. See the [`de`] module for more
/// information.
///
/// ```no_run
/// # use fastnbt::Value;
/// # use flate2::read::GzDecoder;
/// # use std::io;
/// # use std::io::Read;
/// # use fastnbt::error::Result;
/// # fn main() -> Result<()> {
/// # use fastnbt::DeOpts;
/// # let some_reader = io::stdin();
/// let mut decoder = GzDecoder::new(some_reader);
/// let opts = DeOpts::network_nbt();
/// let val: Value = fastnbt::from_reader_with_opts(decoder, opts)?;
/// # Ok(())
/// # }
/// ```
pub fn from_reader_with_opts<'de, R, T>(reader: R, opts: DeOpts) -> Result<T>
where
T: serde_de::Deserialize<'de>,
R: Read,
{
let mut deserializer = Deserializer::from_reader(reader, opts);
serde_de::Deserialize::deserialize(&mut deserializer)
}

/// Deserialize into a `T` from some NBT data. See the [`de`] module for more
/// information.
///
Expand All @@ -364,12 +391,11 @@ where
/// # }
/// ```
pub fn from_reader<'de, R, T>(reader: R) -> Result<T>
where
T: serde_de::Deserialize<'de>,
R: Read,
where
T: serde_de::Deserialize<'de>,
R: Read,
{
let mut deserializer = Deserializer::from_reader(reader, Default::default());
serde_de::Deserialize::deserialize(&mut deserializer)
from_reader_with_opts(reader, Default::default())
}

/// Options for customizing deserialization.
Expand Down

0 comments on commit 0ea1a33

Please sign in to comment.