11 个版本
0.5.0 | 2024 年 3 月 12 日 |
---|---|
0.5.0-rc.1 | 2023 年 8 月 15 日 |
0.4.1 | 2023 年 2 月 1 日 |
0.4.0 | 2021 年 12 月 9 日 |
0.2.0 | 2017 年 3 月 27 日 |
#1 in 无标准库
15,648,201 每月下载量
在 27,001 个 crates 中使用 (821 个直接使用)
31KB
510 代码行
heck 是一个大小写转换库
该库存在是为了在 CamelCase 和 snake_case 等常见大小写之间进行转换。它旨在对 Unicode 有所意识,内部一致,并且性能合理。
单词边界的定义
单词边界由非字母数字字符定义,以及在这些单词内部以这种方式定义
- 如果一个大写字母后面跟着小写字母,则认为单词边界位于该大写字母之前。
- 如果多个大写字母连续出现,则它们被视为一个单词内部的部分,除非最后一个大写字母后面跟着小写字母(参见规则 1),在这种情况下,它将成为下一个单词的一部分。
也就是说,“HelloWorld” 被分割为 Hello|World
,而“XMLHttpRequest” 被分割为 XML|Http|Request
。
不在单词内部的字符(如空格、标点符号和下划线)不包括在输出字符串中,除非它们是正在转换的大小写的一部分。相邻的多个单词边界(如一系列下划线)合并为一个。因此,在 snake case 中,“hello__world” 是“hello_world”,而不是完全相同的字符串)。删除前导或尾随的单词边界指示符,除非 CamelCase 首字母大写。
本库包含的大小写
- UpperCamelCase
- lowerCamelCase
- snake_case
- kebab-case
- SHOUTY_SNAKE_CASE
- Title Case
- SHOUTY-KEBAB-CASE
- Train-Case
MSRV
此 crate 最低支持的 Rust 版本为 1.56.0。这可能会在小版本或修补程序版本中更改,但我们可能永远不会要求非常新的版本。如果您需要一个更强的保证,请提交一个 issue。
许可证
heck是在MIT许可和Apache许可(版本2.0)的条款下发布的。
有关详细信息,请参阅LICENSE-APACHE和LICENSE-MIT。