0.1.0 2022 年 5 月 17 日

#31 in #integer-value

自定义许可

585KB
10K SLoC

icu_char16trie crates.io

icu_char16trieICU4X 项目的一个实用程序 crate。

该组件提供了一种数据结构,用于高效的空间和时间查找映射到整数值的 16 位单元序列(通常但不一定是 UTF-16 代码单元)。

它是现有 ICU4C UCharsTrie / ICU4J CharsTrie API 的实现。

架构

ICU4X Char16Trie 被设计为提供对从 ICU4C 导出的 UCharsTrie 数据的只读视图。

示例

查询 Char16Trie

use icu_char16trie::char16trie::{Char16Trie, TrieResult};
use zerovec::ZeroVec;

// A Char16Trie containing the ASCII characters mapping 'a' to 1 and 'ab'
// to 100.
let trie_data = vec![48, 97, 176, 98, 32868];
let trie = Char16Trie::new(ZeroVec::from_slice_or_alloc(trie_data.as_slice()));

let mut iter = trie.iter();
let res = iter.next('a');
assert_eq!(res, TrieResult::Intermediate(1));
let res = iter.next('b');
assert_eq!(res, TrieResult::FinalValue(100));
let res = iter.next('c');
assert_eq!(res, TrieResult::NoMatch);

更多信息

有关开发、作者、贡献等信息,请访问 ICU4X 主页

依赖项

~135–375KB