4次发布
新 0.1.3 | 2024年8月9日 |
---|---|
0.1.2 | 2024年8月9日 |
0.1.1 | 2024年5月28日 |
0.1.0 | 2024年5月25日 |
#730 in 编码
每月181次下载
400KB
11K SLoC
Enrede
一个易于使用的字符串编码库,提供类似于str
/String
的接口,用于处理超出UTF-8编码的字符串。由于API基于std
,与其他编码一起使用尽可能透明且无痛苦。
名称enrede
是一个双关语 - Encode/Recode/Decode,Enrede在西班牙语中意味着“纠缠”或“被困”。
功能
Str<E>
和String<E>
类型,与str
和std::string::String
等价,但支持泛型编码。CStr<E>
和CString<E>
类型,与std::ffi::CStr
和std::ffi::CString
等价,但支持泛型编码。- 支持低级直接编码/重编码到切片的
Encoding
特质 - 支持
no_std
- 为编码实现
rand::Distribution
,允许轻松生成编码的有效字符
计划的功能
这些功能尚未支持,但计划在未来版本中实现
- 动态编码字符串
- 针对具有特定属性的编码的扩展方法
- 固定长度编码
- 更多编码
- Shift-JIS
- Big5
- ISO/IEC 8859-1
- 更多字符串和C-字符串的方法
支持no_std
默认情况下,std
和alloc
功能已启用。您可以在您的Cargo.toml
中使用default-features = false
来禁用这些功能。当std
被禁用时,该crate为no_std
。当alloc
功能被禁用时,crate将不会使用alloc
,并且需要分配的任何类型或函数都将被禁用(例如String<E>
)。
限制
目前,假设所有支持的编码都是Unicode字符集的子集。
依赖项
~0.5–1MB
~23K SLoC