#unicode #iteration #utilities #text

unic-char-basics

UNIC — Unicode Character Tools — Basic Stable Character Properties

2 unstable releases

0.9.0 Mar 3, 2019
0.8.0 Jan 2, 2019

#34 in #iteration

Download history 41/week @ 2023-12-04 43/week @ 2023-12-11 38/week @ 2023-12-18 17/week @ 2023-12-25 99/week @ 2024-01-01 63/week @ 2024-01-08 110/week @ 2024-01-15 106/week @ 2024-01-22 71/week @ 2024-01-29 63/week @ 2024-02-05 48/week @ 2024-02-12 98/week @ 2024-02-19 105/week @ 2024-02-26 145/week @ 2024-03-04 70/week @ 2024-03-11 56/week @ 2024-03-18

379 downloads per month
Used in 5 crates (2 directly)

MIT/Apache

17KB
164 lines

UNIC — Unicode Character Tools — Basic Stable Character Properties

Crates.io Documentation

This UNIC component provides basic Unicode Character properties that are core to string processing and are stabilized by The Unicode Standard and will never change in the future.


lib.rs:

UNIC — Unicode Character Tools — Basic Stable Character Properties

A simple way to control iteration over a range of characters.

Examples

extern crate unic_char_basics;
use unic_char_basics::{is_noncharacter, is_private_use};

// Plane 0 (BMP)
assert_eq!(is_noncharacter('\u{0}'), false);
assert_eq!(is_noncharacter('\u{80}'), false);
assert_eq!(is_noncharacter('\u{e000}'), false);
assert_eq!(is_noncharacter('\u{f8ff}'), false);
assert_eq!(is_noncharacter('\u{fdd0}'), true);
assert_eq!(is_noncharacter('\u{fdef}'), true);
assert_eq!(is_noncharacter('\u{fffd}'), false);
assert_eq!(is_noncharacter('\u{fffe}'), true);
assert_eq!(is_noncharacter('\u{ffff}'), true);

assert_eq!(is_private_use('\u{0}'), false);
assert_eq!(is_private_use('\u{80}'), false);
assert_eq!(is_private_use('\u{e000}'), true);
assert_eq!(is_private_use('\u{f8ff}'), true);
assert_eq!(is_private_use('\u{fdd0}'), false);
assert_eq!(is_private_use('\u{fdef}'), false);
assert_eq!(is_private_use('\u{fffd}'), false);
assert_eq!(is_private_use('\u{fffe}'), false);
assert_eq!(is_private_use('\u{ffff}'), false);

// Plane 16 (PUA-B)
assert_eq!(is_noncharacter('\u{10_0000}'), false);
assert_eq!(is_noncharacter('\u{10_0001}'), false);
assert_eq!(is_noncharacter('\u{10_fffd}'), false);
assert_eq!(is_noncharacter('\u{10_fffe}'), true);
assert_eq!(is_noncharacter('\u{10_ffff}'), true);

assert_eq!(is_private_use('\u{10_0000}'), true);
assert_eq!(is_private_use('\u{10_0001}'), true);
assert_eq!(is_private_use('\u{10_fffd}'), true);
assert_eq!(is_private_use('\u{10_fffe}'), false);
assert_eq!(is_private_use('\u{10_ffff}'), false);

No runtime deps