DeserializeDriver

Struct DeserializeDriver 

Source
pub struct DeserializeDriver<'a> { /* private fields */ }
Expand description

The driver allows emitting deserialization events into a Deserialize.

This is a convenient way to safely drive a Sink of a Deserialize without using the runtime stack. As rust lifetimes make what this type does internally impossible with safe code, this is a safe abstractiont that hides the unsafety internally.

Implementations§

Source§

impl<'a> DeserializeDriver<'a>

Source

pub fn new<T: Deserialize>(out: &'a mut Option<T>) -> DeserializeDriver<'a>

Creates a new deserializer driver.

Source

pub fn from_sink(sink: SinkHandle<'_>) -> DeserializeDriver<'a>

Creates a new deserializer driver from a sink.

Source

pub fn state(&self) -> &DeserializerState<'_>

Returns a borrowed reference to the current deserializer state.

Source

pub fn emit<'e, E: Into<Event<'e>>>(&mut self, event: E) -> Result<(), Error>

Emits an event into the driver.

§Panics

The driver keeps an internal state and emitting events when they are not expected will cause the driver to panic.

Trait Implementations§

Source§

impl<'a> Drop for DeserializeDriver<'a>

Source§

fn drop(&mut self)

Executes the destructor for this type. Read more

Auto Trait Implementations§

§

impl<'a> !Freeze for DeserializeDriver<'a>

§

impl<'a> !RefUnwindSafe for DeserializeDriver<'a>

§

impl<'a> !Send for DeserializeDriver<'a>

§

impl<'a> !Sync for DeserializeDriver<'a>

§

impl<'a> Unpin for DeserializeDriver<'a>

§

impl<'a> !UnwindSafe for DeserializeDriver<'a>

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.