Struct serde_pipe::Serializer[][src]

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

extern crate serde_pipe;
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]

Construct a new Serializer pipe.

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.

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.

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]

Executes the destructor for this type. Read more

impl Debug for Serializer
[src]

Formats the value using the given formatter. Read more

Auto Trait Implementations

impl Send for Serializer

impl Sync for Serializer