13 个版本 (1 个稳定版本)
1.0.0 | 2022 年 8 月 7 日 |
---|---|
0.3.6 | 2019 年 8 月 23 日 |
0.3.5 | 2018 年 10 月 23 日 |
0.3.2 | 2018 年 8 月 8 日 |
0.1.3 | 2016 年 4 月 7 日 |
在 编码 中排名第 142
每月下载量 1,877,380
在 4,803 个 铁砧中使用 (直接使用 18 个)
155KB
2K SLoC
encode_unicode
UTF-8 和 UTF-16 字符类型,迭代器和与 char
、u8
和 u16
相关的方法。
特性
Utf8Char
: 以 UTF-8 存储的char
。可以作为str
或u8
切片借用。Utf16Char
: 以 UTF-16 存储的char
。可以作为u16
切片借用。char
上的转换方法:- 到和从 UTF-8,作为
[u8; 4]
或切片。 - 到和从 UTF-16,作为
(u16, Option<u16>)
或切片。
- 到和从 UTF-8,作为
- 转换迭代器适配器,用于在
u8
和Utf8Char
或u16
和Utf16Char
之间进行转换。 - 基于切片的解码迭代器的优化。
- 从 UTF-8、UTF-16 或
u32
解码字符时出现精确的错误。. u8
和u16
上的实用方法。
最低支持的 Rust 版本
1.0.* 版本的最低支持的 Rust 版本为 1.56。
之后的 1.y.0 版本可能需要更新的 Rust 版本,但在发布时的三个最新稳定版本将始终得到支持。例如,这意味着如果当 encode_unicode 1.1.0 发布时当前的稳定 Rust 版本是 1.66,那么 encode_unicode 1.1.* 不需要比 1.63 更新的 Rust 版本。
可选功能
#![no_std]
-模式:有一些区别Error
不存在,但description()
被作为一个内置的 impl 提供。Extend
/FromIterator
对于String
/Vec<u8>
/Vec<u16>
的实现是缺失的。- 没有
io
,因此Utf8Iterator
和Utf8CharSplitter
没有实现Read
。这个功能可以通过在Cargo.toml
中设置default-features=false
来启用:encode_unicode = {version="0.3.4", default-features=false}
。
- 与 ascii crate 的集成:将
Utf8Char
和Utf16Char
转换为和从 ascii::AsciiChar
。
许可证
许可方式为以下之一
- Apache License, Version 2.0, (LICENSE-APACHE 或 http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT 或 http://opensource.org/licenses/MIT)
由您选择。
贡献
除非您明确说明,否则根据 Apache-2.0 许可证定义,您提交的任何有意包含在作品中的贡献都将如上所述双重许可,不附加任何额外条款或条件。
开发
do.sh
可以用来检查所有功能组合,测试一切,在设置失败时显示基准测试的输出,运行一段时间的模糊测试,并检查所有内容(除了模糊测试)。
它假定已经安装了 rustup,并且 cargo +release
可以正常工作。
(这个名字是为了在 ./
之后完全自动完成。)
历史
此 crate 的原始目的是提供对当时不稳定的 encode_utf8()
和 encode_utf16()
方法在 char
上的替代。
在0.3版本中移除了standins,因为Rust 1.15稳定了encode_
方法,但我添加的其他功能,例如那些返回的类似迭代器encode_utf{8,16}()
可能仍然有用。