Skip to content
This repository has been archived by the owner on Aug 15, 2021. It is now read-only.

Commit

Permalink
Merge branch 'owned'
Browse files Browse the repository at this point in the history
  • Loading branch information
pyfisch committed Jul 22, 2018
2 parents 77f1a8a + e20e47e commit 36007e1
Showing 1 changed file with 42 additions and 2 deletions.
44 changes: 42 additions & 2 deletions src/de.rs
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,26 @@ use read::Reference;
pub use read::{Read, IoRead, SliceRead};

/// Decodes a value from CBOR data in a slice.
///
/// # Examples
///
/// Deserialize a `String`
///
/// ```
/// # use serde_cbor::de;
/// let v: Vec<u8> = vec![0x66, 0x66, 0x6f, 0x6f, 0x62, 0x61, 0x72];
/// let value: String = de::from_slice(&v[..]).unwrap();
/// assert_eq!(value, "foobar");
/// ```
///
/// Deserialize a borrowed string with zero copies.
///
/// ```
/// # use serde_cbor::de;
/// let v: Vec<u8> = vec![0x66, 0x66, 0x6f, 0x6f, 0x62, 0x61, 0x72];
/// let value: &str = de::from_slice(&v[..]).unwrap();
/// assert_eq!(value, "foobar");
/// ```
pub fn from_slice<'a, T>(slice: &'a [u8]) -> Result<T>
where
T: de::Deserialize<'a>,
Expand All @@ -25,9 +45,29 @@ where
}

/// Decodes a value from CBOR data in a reader.
pub fn from_reader<'a, T, R>(reader: R) -> Result<T>
///
/// # Examples
///
/// Deserialize a `String`
///
/// ```
/// # use serde_cbor::de;
/// let v: Vec<u8> = vec![0x66, 0x66, 0x6f, 0x6f, 0x62, 0x61, 0x72];
/// let value: String = de::from_reader(&v[..]).unwrap();
/// assert_eq!(value, "foobar");
/// ```
///
/// Note that `from_reader` cannot borrow data:
///
/// ```compile_fail
/// # use serde_cbor::de;
/// let v: Vec<u8> = vec![0x66, 0x66, 0x6f, 0x6f, 0x62, 0x61, 0x72];
/// let value: &str = de::from_reader(&v[..]).unwrap();
/// assert_eq!(value, "foobar");
/// ```
pub fn from_reader<T, R>(reader: R) -> Result<T>
where
T: de::Deserialize<'a>,
T: de::DeserializeOwned,
R: io::Read,
{
let mut deserializer = Deserializer::from_reader(reader);
Expand Down

0 comments on commit 36007e1

Please sign in to comment.