#iterator #unicode #range #surrogate #characters #linear #correctly

char-iter

一个对字符线性范围的高性能迭代器(char),正确处理代理范围

1 个不稳定版本

使用旧的 Rust 2015

0.1.0 2015年4月21日

#5#correctly

Download history 12/week @ 2024-03-16 13/week @ 2024-03-23 34/week @ 2024-03-30 13/week @ 2024-04-06 10/week @ 2024-04-13 8/week @ 2024-04-20 7/week @ 2024-04-27 7/week @ 2024-05-04 12/week @ 2024-05-11 22/week @ 2024-05-18 21/week @ 2024-05-25 25/week @ 2024-06-01 22/week @ 2024-06-08 25/week @ 2024-06-15 23/week @ 2024-06-22 5/week @ 2024-06-29

79 每月下载量

MIT/Apache

9KB
204

char-iter

Build Status

这个包提供了一个对字符线性范围的高性能迭代器,正确处理代理范围。

文档crates.io


lib.rs:

这个包提供了一个对字符线性范围的高性能迭代器。

迭代器包含其端点,并正确处理代理范围(从0xD8000xDFFF)。这比直接使用不处理代理范围的整数迭代器(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}']);

没有运行时依赖

功能