11 个版本

0.5.0 2024 年 3 月 12 日
0.5.0-rc.12023 年 8 月 15 日
0.4.1 2023 年 2 月 1 日
0.4.0 2021 年 12 月 9 日
0.2.0 2017 年 3 月 27 日

#1 in 无标准库

Download history 2748636/week @ 2024-04-26 2821205/week @ 2024-05-03 2911764/week @ 2024-05-10 3061291/week @ 2024-05-17 3000104/week @ 2024-05-24 3410407/week @ 2024-05-31 3444195/week @ 2024-06-07 3393512/week @ 2024-06-14 3545128/week @ 2024-06-21 3368594/week @ 2024-06-28 3548285/week @ 2024-07-05 3695784/week @ 2024-07-12 3802568/week @ 2024-07-19 3863019/week @ 2024-07-26 3904014/week @ 2024-08-02 3422596/week @ 2024-08-09

15,648,201 每月下载量
27,001 个 crates 中使用 (821 个直接使用)

MIT/Apache 协议

31KB
510 代码行

heck 是一个大小写转换库

"I specifically requested the opposite of this."

该库存在是为了在 CamelCase 和 snake_case 等常见大小写之间进行转换。它旨在对 Unicode 有所意识,内部一致,并且性能合理。

单词边界的定义

单词边界由非字母数字字符定义,以及在这些单词内部以这种方式定义

  1. 如果一个大写字母后面跟着小写字母,则认为单词边界位于该大写字母之前。
  2. 如果多个大写字母连续出现,则它们被视为一个单词内部的部分,除非最后一个大写字母后面跟着小写字母(参见规则 1),在这种情况下,它将成为下一个单词的一部分。

也就是说,“HelloWorld” 被分割为 Hello|World,而“XMLHttpRequest” 被分割为 XML|Http|Request

不在单词内部的字符(如空格、标点符号和下划线)不包括在输出字符串中,除非它们是正在转换的大小写的一部分。相邻的多个单词边界(如一系列下划线)合并为一个。因此,在 snake case 中,“hello__world” 是“hello_world”,而不是完全相同的字符串)。删除前导或尾随的单词边界指示符,除非 CamelCase 首字母大写。

本库包含的大小写

  1. UpperCamelCase
  2. lowerCamelCase
  3. snake_case
  4. kebab-case
  5. SHOUTY_SNAKE_CASE
  6. Title Case
  7. SHOUTY-KEBAB-CASE
  8. Train-Case

MSRV

此 crate 最低支持的 Rust 版本为 1.56.0。这可能会在小版本或修补程序版本中更改,但我们可能永远不会要求非常新的版本。如果您需要一个更强的保证,请提交一个 issue。

许可证

heck是在MIT许可和Apache许可(版本2.0)的条款下发布的。

有关详细信息,请参阅LICENSE-APACHE和LICENSE-MIT。

没有运行时依赖。