unicode_joining_type/
lib.rs

1//! Look up the joining type or joining group for a character.
2//!
3//! ### Example
4//!
5//! ```
6//! use unicode_joining_type::{get_joining_group, get_joining_type, JoiningGroup, JoiningType};
7//!
8//! assert_eq!(get_joining_type('A'), JoiningType::NonJoining);
9//! assert_eq!(get_joining_group('ھ'), JoiningGroup::KnottedHeh);
10//! ```
11
12#![no_std]
13
14mod joining_type;
15mod joining_type_tables;
16pub use joining_type::get_joining_type;
17pub use joining_type_tables::JoiningType;
18
19mod joining_group;
20mod joining_group_tables;
21pub use joining_group::get_joining_group;
22pub use joining_group_tables::JoiningGroup;
23
24/// The version of [Unicode](http://www.unicode.org/)
25/// that this version of unicode-joining-type was generated from.
26pub const UNICODE_VERSION: (u64, u64, u64) = (15, 0, 0);
27
28#[cfg(test)]
29mod test {
30    use super::{get_joining_group, get_joining_type, JoiningGroup, JoiningType};
31
32    #[test]
33    fn test_get_joining_type() {
34        assert_eq!(get_joining_type('a'), JoiningType::NonJoining);
35        assert_eq!(get_joining_type('.'), JoiningType::NonJoining);
36        assert_eq!(get_joining_type('カ'), JoiningType::NonJoining);
37        assert_eq!(get_joining_type('🦳'), JoiningType::NonJoining);
38        assert_eq!(get_joining_type('ھ'), JoiningType::DualJoining);
39        assert_eq!(get_joining_type('𐫍'), JoiningType::LeftJoining);
40        assert_eq!(get_joining_type('د'), JoiningType::RightJoining);
41        assert_eq!(get_joining_type('𞥋'), JoiningType::Transparent);
42        assert_eq!(get_joining_type('ـ'), JoiningType::JoinCausing);
43    }
44
45    #[test]
46    fn test_get_joining_group() {
47        assert_eq!(get_joining_group('a'), JoiningGroup::NoJoiningGroup);
48        assert_eq!(get_joining_group('.'), JoiningGroup::NoJoiningGroup);
49        assert_eq!(get_joining_group('カ'), JoiningGroup::NoJoiningGroup);
50        assert_eq!(get_joining_group('🦳'), JoiningGroup::NoJoiningGroup);
51        assert_eq!(get_joining_group('ھ'), JoiningGroup::KnottedHeh);
52        assert_eq!(get_joining_group('𐫍'), JoiningGroup::ManichaeanHeth);
53        assert_eq!(get_joining_group('د'), JoiningGroup::Dal);
54        assert_eq!(get_joining_group('𞥋'), JoiningGroup::NoJoiningGroup);
55        assert_eq!(get_joining_group('ـ'), JoiningGroup::NoJoiningGroup);
56    }
57}