#string #no-std #text

no-std str_indices

统计并转换字符串切片上的索引方案

9个版本

0.4.3 2023年11月7日
0.4.2 2023年10月18日
0.4.1 2022年12月18日
0.4.0 2022年5月26日
0.1.0 2022年3月11日

#57 in 文本处理

Download history 12650/week @ 2024-04-09 11635/week @ 2024-04-16 11685/week @ 2024-04-23 12093/week @ 2024-04-30 11763/week @ 2024-05-07 12550/week @ 2024-05-14 12052/week @ 2024-05-21 12560/week @ 2024-05-28 11276/week @ 2024-06-04 11471/week @ 2024-06-11 12551/week @ 2024-06-18 13734/week @ 2024-06-25 11357/week @ 2024-07-02 13095/week @ 2024-07-09 13015/week @ 2024-07-16 14355/week @ 2024-07-23

53,972 每月下载量
用于 150 个crates (6 直接)

MIT/Apache

74KB
1.5K SLoC

Str Indices

Latest Release Documentation

统计并转换utf8字符串切片上的不同索引方案。

当前支持以下方案

  • 字符(Unicode标量值)。
  • UTF16代码单元。
  • 行,支持三种识别换行符的选项
    • 仅行喂。
    • 行喂和回车。
    • 所有Unicode换行符,如Unicode附件#14中指定。

特性标志

默认启用的simd特性标志在支持的平台上进行显式SIMD优化。禁用它将在所有平台上使用回退标量代码路径。此特性标志仅影响性能,不影响行为。

不安全代码

Str Indices使用不安全代码进行性能优化,主要用于SIMD内嵌函数。不安全代码保持最小化,主要隔离,易于审计。整个代码库也进行了模糊测试。

如果您想自己运行模糊测试套件,请安装Rust夜间版和cargo fuzz,然后从仓库根目录运行以下命令

cargo +nightly fuzz run random_strings

非常感谢运行模糊测试套件的额外运行以及代码库的一般审计。如果您发现任何不稳定性,提交一个问题!

许可证

该项目根据以下任一许可证授权

任选其一。

贡献

除非您明确声明,否则您提交的任何有意包含在Str Indices中的贡献将根据上述许可证授权,不附加任何额外条款或条件。

这个crate是no-std,不进行分配,并且没有依赖,旨在保持这种状态。请在提交的贡献中遵守这一点。

无运行时依赖