Crate tokio_stdout [] [src]

Spawn a new thread that writes to stdout using a Tokio encoder.

This is not production-ready: - Items that are flushed to the sink are not guaranteed to be written to stdout (eek!) - Errors are not bubbled up correctly - The user should be able to limit the size of the BytesMut - A more thoughful treatment of performance tradeoffs would be nice

extern crate futures;
extern crate tokio_fmt_encoder;
extern crate tokio_io;
extern crate tokio_stdout;

use futures::{Future, Stream};
use futures::sync::mpsc::SendError;
use futures::stream::iter_ok;
use tokio_fmt_encoder::DebugEncoder;
use tokio_stdout::spawn_encoder_sink_bounded;

fn main() {
    let encoder: DebugEncoder<usize> = Default::default();

    iter_ok::<_, SendError<_>>((1..10).into_iter())
        .forward(spawn_encoder_sink_bounded(encoder, 1))
        .wait()
        .unwrap();
}

Functions

spawn_encoder_sink_bounded

Spawn a new thread that encodes each item and writes it to stdout. The channel to send items to the spawned thread is bounded in size.

spawn_encoder_sink_unbounded

Spawn a new thread that encodes each item and writes it to stdout. The channel to send items to the spawned thread is unbounded in size.