#unicode #unicode-characters #unicode-normalization #properties #character #standard #seshat

seshat-unicode

为Rust的Unicode库。支持Unicode 15.1.0。XID_Start和XID_Continue也可用。

18个版本

0.2.1 2024年2月18日
0.1.0 2023年3月29日
0.0.15 2021年10月2日
0.0.13 2021年6月19日
0.0.10 2020年7月27日

文本处理分类中排名第874

Download history 98/week @ 2024-06-30

每月下载量93

MIT许可

5.5MB
94K SLoC

Seshat 𓋇𓏏𓁐

crates.io

logo

为Rust的Unicode库。

介绍

Seshat(发音为Sehs-hat)是一个用Rust编写的Unicode库。它提供了许多Unicode字符数据和标准算法。该项目目标是提供一个类似ICU的Rust库。

版本

Seshat遵循最新的Unicode版本。目前使用版本15.1.0。

用法

[dependencies]
seshat-unicode = "0.2.1"
use seshat::unicode::Ucd;

fn main() {
    println!("🦀 is {}!", '🦀'.na());
}

检查Unicode版本

use seshat::unicode::UNICODE_VERSION;

fn main() {
    println!("{}", UNICODE_VERSION.to_string());
}

特性

图形簇分割

use seshat::unicode::Segmentation;

fn main() {
    let s = "Hi, 👨🏾‍🤝‍👨🏿";
    for seg in s.break_graphemes() {
        println!("{}", seg);
    }
}

这将打印

$ cargo run
H
i
,
 
👨🏾‍🤝‍👨🏿

标准化

use seshat::unicode::Normalization;

fn main() {
    let s1 = "Å";
    println!("{:?}", s1.to_nfd()); // Will prints "A\u{30a}"

    let s2 = "";
    println!("{}", s2.to_nfkd()); // Will prints アパート

    let s3 = "e\u{0301}";
    println!("{}", s3.to_nfc()); // Will prints é

    let s4 = "アイウエオ";
    assert_eq!("アイウエオ", s4.to_nfkc());
}

属性

use seshat::unicode::Ucd;

fn main() {
    let c = 'ʹ';    // U+0374 GREEK NUMERAL SIGN
    assert_eq!(c.xids(), true); // XID_Start property of the character.
}

对于枚举属性

use seshat::unicode::Ucd;
use seshat::unicode::props::Gc;

fn main() {
    assert_eq!('A'.gc(), Gc::Lu);
    assert_eq!('a'.gc(), Gc::Ll);
}

补丁

0.2.1 - 排除tools/目录,发布时不应包含。

贡献

稍后添加。

许可

所有标志图像的版权归其创作者所有,未经许可不得用于本项目之外。

绘图部分(书写女神)由Frybits Inc.提供。

Seshat在MIT许可证下开发。详细信息请参阅LICENSE文件。

依赖项