10 个版本 (4 个破坏性版本)
0.7.1 | 2022年11月20日 |
---|---|
0.7.0 |
|
0.6.2 | 2022年11月1日 |
0.6.1 | 2022年10月31日 |
0.3.0 | 2022年10月26日 |
#2036 in Rust 模式
36 每月下载量
58KB
1K SLoC
BurntNail Utils
嘿!你找到了我用于 Rust 的一般实用工具。现在有很多,包括可选的 tracing
支持,并提供标准 println
和 eprintln
作为后备。
错误扩展
主要设计为与 anyhow
和 color-eyre
一起使用,因此包括将 Option
和 PosionErr
转换为 Anyhow 错误的方法。
还包括一个用于快速记录错误的 trait,作为 unwrap
和 expect
的替代方案。
基于时间的结构
作用域计时器
包括一个 ScopedTimer
,其中你创建一个计时器,然后在 Drop
上,它将打印出所花费的时间和一条消息。
还有一个 ThreadSafeScopedToListTimer
,它将结果发送到包含 Duration
结构的 MemoryCacher
。
在间隔上执行操作
一个有用的结构来保存计时器,并且每次你想在间隔上执行一个操作时,你都会检查它,然后它会告诉你。之后,你可以手动更新它,或者使用一个守卫。
内存缓存器
基本上,一个固定大小的循环队列。曾经使用 MaybeUninit
进行不安全使用,但后来我发现,当它背后是一个正常的 Vec
时,它大约快了 10 倍。
坐标
一个用于坐标的结构,具有泛型内部类型和最大宽度和高度。
或者
一个基本的 Either 枚举类型,具有 Left、Right 和一些转换方法。
Piston 缓存器
一个根据文件路径缓存 piston2d 图像的结构。
多维数组
目前仅包含一个二维数组,可以使用原生坐标或 (usize, usize)
进行索引。
待办事项
- 将
ThreadSafeScopedToListTimer
修改为使用可以推送的不同内容(可能需要新的特质?) - 重命名一些内容以使其更清晰
- 文档测试和更多示例
依赖项
~0.5–11MB
~77K SLoC