mirror of
https://github.com/zerotier/ZeroTierOne.git
synced 2024-12-26 16:11:07 +00:00
40 lines
1.1 KiB
Markdown
40 lines
1.1 KiB
Markdown
|
# unicode-normalization
|
||
|
|
||
|
[![Build Status](https://travis-ci.org/unicode-rs/unicode-normalization.svg)](https://travis-ci.org/unicode-rs/unicode-normalization)
|
||
|
[![Docs](https://docs.rs/unicode-normalization/badge.svg)](https://docs.rs/unicode-normalization/)
|
||
|
|
||
|
Unicode character composition and decomposition utilities
|
||
|
as described in
|
||
|
[Unicode Standard Annex #15](http://www.unicode.org/reports/tr15/).
|
||
|
|
||
|
This crate requires Rust 1.36+.
|
||
|
|
||
|
```rust
|
||
|
extern crate unicode_normalization;
|
||
|
|
||
|
use unicode_normalization::char::compose;
|
||
|
use unicode_normalization::UnicodeNormalization;
|
||
|
|
||
|
fn main() {
|
||
|
assert_eq!(compose('A','\u{30a}'), Some('Å'));
|
||
|
|
||
|
let s = "ÅΩ";
|
||
|
let c = s.nfc().collect::<String>();
|
||
|
assert_eq!(c, "ÅΩ");
|
||
|
}
|
||
|
```
|
||
|
|
||
|
## crates.io
|
||
|
|
||
|
You can use this package in your project by adding the following
|
||
|
to your `Cargo.toml`:
|
||
|
|
||
|
```toml
|
||
|
[dependencies]
|
||
|
unicode-normalization = "0.1.19"
|
||
|
```
|
||
|
|
||
|
## `no_std` + `alloc` support
|
||
|
|
||
|
This crate is completely `no_std` + `alloc` compatible. This can be enabled by disabling the `std` feature, i.e. specifying `default-features = false` for this crate on your `Cargo.toml`.
|