0.5.0 2022年5月10日
0.4.1 2022年1月31日
0.4.0 2021年11月1日
0.3.0 2021年7月30日
0.1.0 2020年10月15日

#48 in #icu4x

Download history 1861/week @ 2024-04-03 2258/week @ 2024-04-10 1798/week @ 2024-04-17 1644/week @ 2024-04-24 1379/week @ 2024-05-01 1695/week @ 2024-05-08 1726/week @ 2024-05-15 1314/week @ 2024-05-22 2177/week @ 2024-05-29 1988/week @ 2024-06-05 2038/week @ 2024-06-12 1298/week @ 2024-06-19 1161/week @ 2024-06-26 805/week @ 2024-07-03 638/week @ 2024-07-10 102/week @ 2024-07-17

2,903 每月下载量
3 个crate中使用(直接使用2个)

自定义许可

1MB
13K SLoC

icu_uniset crates.io

icu_unisetICU4X 项目的一个实用crate。

此API为高效查询Unicode字符集提供了必要的功能。

它是现有 ICU4C UnicodeSet API 的实现。

架构

ICU4X UnicodeSet 被拆分为独立的层级,其中 UnicodeSet 代表成员/查询API,而 UnicodeSetBuilder 代表构建器API。属性API将在未来的工作中实现。

示例

创建一个 UnicodeSet

UnicodeSet可以通过序列化的 UnicodeSets(由反转列表表示)、UnicodeSetBuilder 或 TBA 属性API创建。

use icu_uniset::{UnicodeSet, UnicodeSetBuilder};

let mut builder = UnicodeSetBuilder::new();
builder.add_range(&('A'..'Z'));
let set: UnicodeSet = builder.build();

assert!(set.contains('A'));

查询一个 UnicodeSet

目前,您可以通过检查字符/字符范围是否存在于 UnicodeSet 中,或遍历字符。

use icu_uniset::{UnicodeSet, UnicodeSetBuilder};

let mut builder = UnicodeSetBuilder::new();
builder.add_range(&('A'..'Z'));
let set: UnicodeSet = builder.build();

assert!(set.contains('A'));
assert!(set.contains_range(&('A'..='C')));
assert_eq!(set.iter_chars().next(), Some('A'));

更多信息

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

依赖项

~1.3–1.8MB
~42K SLoC