1 个不稳定版本
使用旧的 Rust 2015
0.2.0 | 2020 年 8 月 22 日 |
---|
#3 在 #alex 中
13KB
164 行
buf_stream
用于读写缓存的 I/O 流
关于
buf_stream
是 Alex Chrichton 的 bufstream 的分支。
用法
[dependencies]
buf_stream = "0.2"
Tokio
此包通过 tokio
功能支持 tokio 的 AsyncRead
+ AsyncWrite
特性。当使用异步 I/O 时,请确保在丢弃流之前正确刷新流,因为丢弃时的 I/O 可能会导致恐慌。同样,您应避免使用 BufStream::into_inner
。
lib.rs
:
用于分离缓冲流的包。
此包提供了一个 BufStream
类型,它为 Read + Write
类型提供读写两部分的缓冲。每一部分都完全独立于另一部分缓冲,这不一定总是所需的。例如 BufStream<File>
可能具有意外的语义。
用法
[dependencies]
bufstream = "0.1"
use std::io::prelude::*;
use std::net::TcpStream;
use bufstream::BufStream;
let stream = TcpStream::connect("localhost:4000").unwrap();
let mut buf = BufStream::new(stream);
buf.read(&mut [0; 1024]).unwrap();
buf.write(&[0; 1024]).unwrap();
异步 I/O
此包可以通过此包的 tokio
功能选择性地支持通过 Tokio 堆栈 的异步 I/O 流。
bufstream = { version = "0.2", features = ["tokio"] }
所有方法都内部支持可能在不准备执行特定操作时返回 ErrorKind::WouldBlock
的流。
但是,请注意在使用这些对象时需要小心。特别是,Tokio 运行时要求在丢弃流之前完全刷新数据。为了与阻塞流兼容,所有流在丢弃时都会刷新/写入,这并不总是进行 I/O 的合适时间。但是,如果在丢弃之前刷新 I/O 流,则这些操作将不会执行任何操作。
依赖项
~105KB