pub struct StreamDeserializer { /* private fields */ }Expand description
Reads a stream of CBOR data items into items (see deser::stream).
The stream is a CBOR sequence of data items that follow each other. An item is complete once its last byte was read. Reading continues after items that fail to deserialize, items that are not well-formed end the stream.
Items which do not borrow are deserialized while their input arrives
(see
StreamDeserializer::drive_partial)
so only incomplete data items (like strings) are buffered.
use deser_cbor::DeserializerConfig;
let mut reader =
DeserializerConfig::new().reader(&[0x01, 0x62, b'h', b'i'][..]);
assert_eq!(reader.read::<u32>().unwrap(), Some(1));
assert_eq!(reader.read::<String>().unwrap().as_deref(), Some("hi"));
assert_eq!(reader.read::<u32>().unwrap(), None);Items are parsed like with a Deserializer, so they can borrow from
the stream’s buffer (see
InputBuffer::deserialize).
Implementations§
Source§impl StreamDeserializer
impl StreamDeserializer
Sourcepub fn new() -> StreamDeserializer
pub fn new() -> StreamDeserializer
Creates a stream deserializer.
Sourcepub fn with_config(config: DeserializerConfig) -> StreamDeserializer
pub fn with_config(config: DeserializerConfig) -> StreamDeserializer
Creates a stream deserializer with the given configuration.
Sourcepub fn config(&self) -> &DeserializerConfig
pub fn config(&self) -> &DeserializerConfig
Returns the configuration.
Trait Implementations§
Source§impl Debug for StreamDeserializer
impl Debug for StreamDeserializer
Source§impl Default for StreamDeserializer
impl Default for StreamDeserializer
Source§fn default() -> StreamDeserializer
fn default() -> StreamDeserializer
Returns the “default value” for a type. Read more
Source§impl StreamDeserializer for StreamDeserializer
impl StreamDeserializer for StreamDeserializer
Source§fn frame(&mut self, input: &[u8], eof: bool) -> Result<Frame, Error>
fn frame(&mut self, input: &[u8], eof: bool) -> Result<Frame, Error>
Finds the next value in the input. Read more
Source§fn drive_frame<'de>(
&mut self,
frame: &'de [u8],
driver: &mut DeserializeDriver<'_, 'de>,
) -> Result<(), Error>
fn drive_frame<'de>( &mut self, frame: &'de [u8], driver: &mut DeserializeDriver<'_, 'de>, ) -> Result<(), Error>
Deserializes a value from its frame. Read more
Source§fn supports_partial(&self) -> bool
fn supports_partial(&self) -> bool
Source§fn drive_partial(
&mut self,
input: &[u8],
offset: usize,
eof: bool,
driver: &mut DeserializeDriver<'_, '_>,
) -> Result<Progress, Error>
fn drive_partial( &mut self, input: &[u8], offset: usize, eof: bool, driver: &mut DeserializeDriver<'_, '_>, ) -> Result<Progress, Error>
Deserializes a value while its input arrives. Read more
Auto Trait Implementations§
impl !RefUnwindSafe for StreamDeserializer
impl !UnwindSafe for StreamDeserializer
impl Freeze for StreamDeserializer
impl Send for StreamDeserializer
impl Sync for StreamDeserializer
impl Unpin for StreamDeserializer
impl UnsafeUnpin for StreamDeserializer
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more