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 在 数据结构 中
643,764 每月下载量
在 572 个crate(36个直接) 中使用
215KB
4K SLoC
tinystr
tinystr
是 ICU4X
项目的一个实用工具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