[−][src]Struct serde_pipe::Serializer
Serializer pipe: push T
; pull u8
.
The push
and pull
calls can signify "blocking" – i.e. they're awaiting the other call – by returning None
.
A Some
returned signifies readiness, holding an impl FnOnce
that you can call to perform the push/pull.
Example
use serde_pipe::Serializer; let large_vector = (0..1u64<<30).collect::<Vec<_>>(); let mut serializer = Serializer::new(); serializer.push().unwrap()(large_vector); while let Some(pull) = serializer.pull() { let byte = pull(); println!("byte! {}", byte); }
Panics
Will panic if dropped while non-empty. In practise this almost always signifies a bug. If you do want to drop it when non-empty, call Serializer::empty()
before dropping it.
Methods
impl Serializer
[src]
pub fn new() -> Self
[src]
Construct a new Serializer pipe.
pub fn push<'a, T: Serialize + 'static>(
&'a mut self
) -> Option<impl FnOnce(T) + 'a>
[src]
&'a mut self
) -> Option<impl FnOnce(T) + 'a>
Push a T
to the Serializer pipe. None
denotes that the Serializer is instead awaiting a pull
. Some
contains an impl FnOnce(T)
that can be called to perform the push
.
pub fn pull<'a>(&'a mut self) -> Option<impl FnOnce() -> u8 + 'a>
[src]
Pull a T
from the Serializer pipe. None
denotes that the Serializer is instead awaiting a push
. Some
contains an impl FnOnce() -> u8
that can be called to perform the pull
.
pub fn empty<'a>(&'a mut self) -> Option<impl FnOnce() + 'a>
[src]
Trait Implementations
impl Drop for Serializer
[src]
impl Debug for Serializer
[src]
Auto Trait Implementations
impl Sync for Serializer
impl Unpin for Serializer
impl Send for Serializer
impl UnwindSafe for Serializer
impl RefUnwindSafe for Serializer
Blanket Implementations
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T> From<T> for T
[src]
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.
fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,