29个版本

0.7.6 2024年5月28日
0.7.5 2023年11月16日
0.7.4 2023年10月3日
0.7.1 2023年1月26日
0.3.2 2019年10月28日

#25数据结构

Download history 99853/week @ 2024-05-02 91188/week @ 2024-05-09 95499/week @ 2024-05-16 101847/week @ 2024-05-23 107392/week @ 2024-05-30 339255/week @ 2024-06-06 634688/week @ 2024-06-13 310038/week @ 2024-06-20 232479/week @ 2024-06-27 152917/week @ 2024-07-04 160107/week @ 2024-07-11 159426/week @ 2024-07-18 166049/week @ 2024-07-25 163245/week @ 2024-08-01 156786/week @ 2024-08-08 126471/week @ 2024-08-15

643,764 每月下载量
572 个crate(36个直接) 中使用

Unicode-3.0

215KB
4K SLoC

tinystr crates.io

tinystrICU4X 项目的一个实用工具crate。

它包括 TinyAsciiStr,这是一个用于表示小型仅限ASCII的定长字符串的核心API。

它针对大小为8或更小的字符串操作进行了优化。当用例涉及比较和转换字符串以进行大小写/标题大小写,或检查数字/字母/字母数字时,TinyAsciiStr 是性能最优异的库。

示例

use tinystr::TinyAsciiStr;

let s1: TinyAsciiStr<4> = "tEsT".parse().expect("Failed to parse.");

assert_eq!(s1, "tEsT");
assert_eq!(s1.to_ascii_uppercase(), "TEST");
assert_eq!(s1.to_ascii_lowercase(), "test");
assert_eq!(s1.to_ascii_titlecase(), "Test");
assert!(s1.is_ascii_alphanumeric());
assert!(!s1.is_ascii_numeric());

let s2 = TinyAsciiStr::<8>::try_from_raw(*b"New York")
    .expect("Failed to parse.");

assert_eq!(s2, "New York");
assert_eq!(s2.to_ascii_uppercase(), "NEW YORK");
assert_eq!(s2.to_ascii_lowercase(), "new york");
assert_eq!(s2.to_ascii_titlecase(), "New york");
assert!(!s2.is_ascii_alphanumeric());

详情

当字符串大小为8或更小时,该结构将字符串转换为 u32/u64 并使用位掩码提供基本的字符串操作

  • is_ascii_numeric
  • is_ascii_alphabetic
  • is_ascii_alphanumeric
  • to_ascii_lowercase
  • to_ascii_uppercase
  • to_ascii_titlecase
  • PartialEq

TinyAsciiStr 对于长度大于8的字符串将回退到 u8 字符操作。

更多信息

有关开发、作者、贡献等方面的更多信息,请访问 ICU4X 主页

依赖关系

~250–760KB
~18K SLoC