Rust: “char”:为 Unicode 字符类别添加类型和功能

创建于 2011-12-20  ·  6评论  ·  资料来源: rust-lang/rust

对于 Unicode 字符类别,请参见http://www.fileformat.info/info/unicode/category/index.htm

Haskell 实现了类型“GeneralCategory”和一个函数来确定一个字符的“GeneralCategory”。
他们的实现是这样的:

我建议编写一个 Python 脚本,它执行类似的操作。

在 Rust 中拥有这样的类型和函数使我们能够在“char”模块中正确实现函数。 见http://haskell.org/ghc/docs/6.12.2/html/libraries/base-4.2.0.1/src/Data-Char.html

最有用的评论

很抱歉评论这么老的线程,我实际上只是在这里实现了大部分 UCD (v9.0.0)。 它不依赖于 libicu,也不依赖于标准库,因此希望它应该易于在项目中使用(尽管它可能不如 ICU 可靠)。

所有6条评论

在 libstd 中名为 'unicode::' 的正在进行中的模块是我要勾画出 libicu 接口的地方。 对于大多数字符类来说,这个决定实际上并不是很简单,ICU 处理得很好。 我想我们可以在 core::char 下公开它,如果每个人都喜欢依赖 libicu 吗?

libicu 提供了许多额外的理想特性,并且它可能存在于大多数计算机上(Python 使用它,所以对我们来说应该没问题)。

我们是想提供公共 libicu 绑定还是只在“char”、“str”等模块内部使用它?
我倾向于后者。

要使用 libicu 正确实现 Rust 的“char”中的函数,我认为我们只需要调用“u_isspace()”、“u_isdigit()”、“u_forDigit()”等函数(http://icu-project.org/ apiref/icu4c/uchar_8h.html)。

我们还不需要完整的 libicu 绑定(包括许多常量定义)。

我认为我们应该走 libicu 路线。 见#1370

我们可以重新打开这个吗? 我们不再依赖 libicu,但仍然没有简单的方法来找到角色的类别。

很抱歉评论这么老的线程,我实际上只是在这里实现了大部分 UCD (v9.0.0)。 它不依赖于 libicu,也不依赖于标准库,因此希望它应该易于在项目中使用(尽管它可能不如 ICU 可靠)。

此页面是否有帮助?
0 / 5 - 0 等级