#io #statistics #object #wrap #io-operations #logging #io-tracing

io_wrapper_statistics

封装 I/O 对象并收集 I/O 操作的统计信息

2 个版本

0.1.1 2021 年 9 月 11 日
0.1.0 2021 年 9 月 11 日

#659调试

MIT/Apache

17KB
309

io_wrapper_statistics

这个库是一个开发工具,用于封装 I/O 对象,并提供有关每个 I/O 方法被调用的频率的统计信息,以及记录 I/O 调用及其结果的手段。


lib.rs:

我们封装了大多数`Read`方法,包括提供的那些,并将调用传递给内部I/O对象。I/O操作日志和统计信息仅在`[Read::read()]`函数中显式更新,因为预期其他方法将使用它来实现。值得注意的是,我们不传递`Read::bytes()`, `Read::chain()`和`Read::take()`,因为这些返回的结构的私有实现细节需要我们查看才能正确地使用泛型类型。然而,由于这个原因,我们不期望其他`Read`实现也有自己的实现,所以这不应该是一个问题。对于`inner_io`的读取调用,我们进行传递,该调用增加调用计数并将`IopResults::Read`对象附加到日志中。我们封装了`Seek`的所有方法,包括提供的那些,并将调用传递给内部I/O对象。I/O操作日志和统计信息仅在`[Seek::seek()]`函数中显式更新,因为预期其他方法将使用它来实现。对于`inner_io`的查找调用,我们进行传递,该调用增加调用计数并将`IopResults::Seek`对象附加到日志中。我们封装了`Write`的所有方法,包括提供的那些,并将调用传递给内部I/O对象。I/O操作日志和统计信息在`[Write::write()]`和`[Write::flush()]`函数中显式更新,因为预期其他方法将使用它们来实现。对于`inner_io`的写入调用,我们进行传递,该调用增加调用计数并将`IopResults::Write`对象附加到日志中。对于`inner_io`的写入调用,我们进行传递,该调用增加调用计数并将`IopResults::Flush`对象附加到日志中。

依赖关系

~155KB