#tokio #stdout #sink #write #encoder #thread #bounded

tokio-stdout

将数据写入 stdout 作为 Tokio sink

1 个不稳定版本

使用旧的 Rust 2015

0.1.0 2017年10月20日

#44 in #bounded

MIT/Apache

6KB

tokio-stdout

使用 Tokio encoder 创建一个新线程写入 stdout。

这不是生产就绪的

  • 发送到 sink 的项目不一定会被写入 stdout(啊!)
  • 错误没有被正确冒泡
  • 用户应该能够限制 BytesMut 的大小
  • 更周全地处理性能权衡会更好
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();
}

许可证:MIT/Apache-2.0


lib.rs:

使用 Tokio encoder 创建一个新线程写入 stdout。

这不是生产就绪的

  • 发送到 sink 的项目不一定会被写入 stdout(啊!)
  • 错误没有被正确冒泡
  • 用户应该能够限制 BytesMut 的大小
  • 更周全地处理性能权衡会更好
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();
}

依赖项

~605KB
~11K SLoC