[][src]Struct serde_pipe::Serializer

pub struct Serializer { /* fields omitted */ }

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]

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]

Empty this pipe. None denotes it's already empty. Some contains an impl FnOnce() that can be called to perform the empty.

Trait Implementations

impl Drop for Serializer[src]

impl Debug for Serializer[src]

Auto Trait Implementations

Blanket Implementations

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

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

The type returned in the event of a conversion error.

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> Any for T where
    T: 'static + ?Sized
[src]