12 个版本 (破坏性)
新 0.10.0 | 2024 年 8 月 11 日 |
---|---|
0.9.0 | 2024 年 6 月 21 日 |
0.8.0 | 2024 年 6 月 16 日 |
0.5.3 |
|
#184 在 Rust 模式
1,432 每月下载量
650KB
16K SLoC
wiwi
一个(并不那么)小的库,包含各种实用工具和 Stuff™。包含一些有用的东西,也包含一些愚蠢的东西。包含很多东西!
wiwi 所有的功能都由功能标志控制,默认情况下没有任何一个被启用。
功能
在这些不同类型功能的描述之后,将有一个小节专门列出每个功能。
稳定功能是您可能期望的,它们被认为是完成的,遵循 semver。当然,这并不意味着不能添加功能,或者它不能被破坏(如果它被破坏,将会有破坏性的 semver 升级,遵循 semver)。
不稳定功能是任何程度完成的功能,可以随时破坏或消失。它们 不 遵循 semver。在成为稳定功能之前,不稳定功能的名字会附加 -unstable
,当功能稳定时将删除。如果您正在使用不稳定功能,您可能想将版本锁定到确切版本(即 semver 中的 =
操作符,例如,在 Cargo.toml
中 wiwi = "=1.0.0"
)。
附加功能使某些功能中能够启用更多东西,包括 wiwi
和第三方 crate 之间的集成。它们将在适用的情况下启用功能,如果没有可影响的内容,将静默地不进行任何操作。
存在 all
功能来启用所有稳定功能,all-unstable
来启用所有不稳定(包括稳定)功能,以及 all-addons
来启用所有附加功能(但您很可能不想这样做!除非您真的在使用所有集成,否则这可能会并会导致依赖树膨胀)。
稳定功能
augment-panic-hook
- 方便地增强 panic hook(而不是替换它),在调用现有的 panic hook 之前运行一些代码clock-timer
- 一个间隔跟踪时钟,在指定的间隔产生滴答声,并在指定的时间内这样做debounce
- 延迟调用一个函数,直到从上次调用以来已经过去了一段时间export-all-submodules
- 一个方便的宏,用于声明许多私有模块,然后使用 glob use 语句重新导出它们中的所有内容h
- hhex
- 支持大写和小写十六进制的快速十六进制编码和解码器lazy-wrap
- 懒加载值及其初始化函数的包装器,支持在静态变量中使用nominal
- 通用新类型包装器,通过Rust的命名类型系统提高类型安全性rand
- 更多的随机数生成器和实用工具with-cloned
- 方便的宏,用于实现克隆和移动模式(是的,我们就是这样叫它:p)z85
- ZeroMQ 的 zZ85 格式的快速编码和解码器
附加功能
hashbrown
- 在适用的地方添加与hashbrown
crate 的集成image
- 在适用的地方添加与image
crate 的集成large-tuples
- 默认情况下,元组的实现适用于最多8个元素的元组,这应该足够大多数使用。启用此功能将启用最多32个元素的元组的实现nightly
- 启用仅在nightly Rust中可用的功能omega-tuples-of-doom
- 当然,没有人会使用超过32个元素的元组...但我们不知道每个人的用例,因此此功能将启用最多128个元素的元组的实现。 希望,这足够用于所有情况。 :pserde
- 在适用的地方添加与serde
crate 的集成serde-json
- 在适用的地方添加与serde-json
crate 的集成
不稳定功能
提醒:不稳定功能不受semver保证!
aoc
- 为编写 Advent of Code 解决方案而特定的实用工具auth
- 用于编写身份验证系统的底层(ish)实用工具,其中客户端密码永远不会通过网络发送bitstream
- 比特流编码和解码器chainer
- 常见结构的包装器,提供链式API(获取所有权,执行操作,然后返回)cli
- CLI参数解析器defer
- 延迟运行代码直到当前作用域的末尾或直到某个东西被丢弃id
- 各种输出大小和唯一性及排序保证的ID生成器int
- 大整数(例如u384)和不规则大小的整数(例如u15)iter
- 迭代器实用工具lsl
- 用于编写Second Life脚本的实验性lib...因为是的,我很快就厌倦了它,并立即想念Rust lolmcu
- Material颜色实用工具memory-usage
- 计算Rust结构体的实际内存使用情况,包括自定义类型的 derive 宏(与size_of::
不同)() minesweeper
- 任意大小的扫雷游戏的核心逻辑组件num-traits
- 为数字及其各种功能提供更多特性,包括如MulWidening
等功能path
- 从头开始编写的仅支持UTF-8的路径操作工具serialiser-binary
- 自描述且稳定的二进制格式/序列化器,旨在输出体积小serialiser-binary-2
- 自描述且稳定的二进制格式/序列化器,旨在输出体积小(v2)serialiser-text
- 自描述且稳定的文本格式/序列化器,旨在便于手工阅读和编写string-pool
- 全局不可变字符串池和String类型(类似于Java)sudoku
- 与数独相关的...内容unicode
- Unicode标准实现,包括UTF-8、UTF-16和UTF-32字符串
平台支持
此crate将仅正式支持macOS和Linux。Windows支持将仅在最大努力的基础上进行。这并不意味着我不想支持Windows!只是我在Unix平台上的能力将会较小。尽管如此,仍然可以提交问题,如果您愿意的话,也可以向我提交PR!
依赖关系
~0.3–12MB
~123K SLoC