1 个不稳定版本
使用旧的 Rust 2015
0.1.0 | 2015年4月21日 |
---|
#5 在 #correctly
79 每月下载量
9KB
204 行
char-iter
这个包提供了一个对字符线性范围的高性能迭代器,正确处理代理范围。
lib.rs
:
这个包提供了一个对字符线性范围的高性能迭代器。
迭代器包含其端点,并正确处理代理范围(从0xD800
到0xDFFF
)。这比直接使用不处理代理范围的整数迭代器(x..y
)只多一个分支(或条件移动)。
安装
将以下内容添加到您的 Cargo.toml 文件中
[dependencies]
char-iter = "0.1"
示例
let v: Vec<char> = char_iter::new('a', 'f').collect();
assert_eq!(v, &['a', 'b', 'c', 'd', 'e', 'f']);
支持反向迭代
// (codepoints 224 to 230)
let v: Vec<char> = char_iter::new('à', 'æ').rev().collect();
assert_eq!(v, &['æ', 'å', 'ä', 'ã', 'â', 'á', 'à']);
跳过代理范围
let v: Vec<char> = char_iter::new('\u{D7FF}', '\u{E000}').collect();
// 0xD800, ... 0xDFFF are missing
assert_eq!(v, &['\u{D7FF}', '\u{E000}']);