5个版本
0.2.18 | 2024年6月26日 |
---|---|
0.2.17 | 2024年3月7日 |
0.2.15 | 2023年7月31日 |
0.2.3 |
|
#159 在 异步
7,974 每月下载量
用于 sitemapo
19KB
385 行
countio
查看其他 spire
项目 这里.
包装结构体,用于启用对std::io::{Read, Write, Seek}
及其来自futures
和tokio
crate的异步变体的字节计数。
功能
std
启用std::io::{Read, Write, Seek}
。 默认启用。futures
启用futures_io::{AsyncRead, AsyncWrite, AsyncSeek}
。tokio
启用tokio::io::{AsyncRead, AsyncWrite, AsyncSeek}
。
示例
std::io::Read
:
use std::io::{BufRead, BufReader, Result};
use countio::Counter;
fn main() -> Result<()> {
let reader = "Hello World!".as_bytes();
let reader = BufReader::new(reader);
let mut reader = Counter::new(reader);
let mut buf = String::new();
let len = reader.read_line(&mut buf)?;
assert_eq!(len, reader.reader_bytes());
Ok(())
}
std::io::Write
:
use std::io::{BufWriter, Write, Result};
use countio::Counter;
fn main() -> Result<()> {
let writer = Vec::new();
let writer = BufWriter::new(writer);
let mut writer = Counter::new(writer);
let buf = "Hello World!".as_bytes();
let len = writer.write(buf)?;
writer.flush()?;
assert_eq!(len, writer.writer_bytes());
Ok(())
}
其他crate
依赖项
~0–1.1MB
~19K SLoC