|
27 | 27 | //! - [`normal`](/unic-normal): Unicode Normalization Forms (USA\#15). |
28 | 28 | //! |
29 | 29 | //! - [`idna`](/unic-idna): Unicode IDNA Compatibility Processing (UTS\#46). |
| 30 | +//! |
| 31 | +//! |
| 32 | +//! ## A Basic Example |
| 33 | +//! |
| 34 | +//! ```rust |
| 35 | +//! extern crate unic; |
| 36 | +//! |
| 37 | +//! use unic::bidi::BidiInfo; |
| 38 | +//! use unic::normal::StrNormalForm; |
| 39 | +//! use unic::ucd::bidi::{BidiClass, BidiChar, BidiStr}; |
| 40 | +//! use unic::ucd::normal::compose; |
| 41 | +//! |
| 42 | +//! fn main() { |
| 43 | +//! // Bidi |
| 44 | +//! |
| 45 | +//! let text = concat![ |
| 46 | +//! "א", |
| 47 | +//! "ב", |
| 48 | +//! "ג", |
| 49 | +//! "a", |
| 50 | +//! "b", |
| 51 | +//! "c", |
| 52 | +//! ]; |
| 53 | +//! |
| 54 | +//! assert!(!text.has_explicit()); |
| 55 | +//! assert!(text.has_rtl()); |
| 56 | +//! assert!(text.has_ltr()); |
| 57 | +//! |
| 58 | +//! assert_eq!(text.chars().nth(0).unwrap().bidi_class(), BidiClass::R); |
| 59 | +//! assert!(!text.chars().nth(0).unwrap().is_explicit()); |
| 60 | +//! assert!(!text.chars().nth(0).unwrap().is_ltr()); |
| 61 | +//! assert!(text.chars().nth(0).unwrap().is_rtl()); |
| 62 | +//! |
| 63 | +//! assert_eq!(text.chars().nth(3).unwrap().bidi_class(), BidiClass::L); |
| 64 | +//! assert!(!text.chars().nth(3).unwrap().is_explicit()); |
| 65 | +//! assert!(text.chars().nth(3).unwrap().is_ltr()); |
| 66 | +//! assert!(!text.chars().nth(3).unwrap().is_rtl()); |
| 67 | +//! |
| 68 | +//! let bidi_info = BidiInfo::new(&text, None); |
| 69 | +//! assert_eq!(bidi_info.paragraphs.len(), 1); |
| 70 | +//! |
| 71 | +//! let para = &bidi_info.paragraphs[0]; |
| 72 | +//! assert_eq!(para.level.number(), 1); |
| 73 | +//! assert_eq!(para.level.is_rtl(), true); |
| 74 | +//! |
| 75 | +//! let line = para.range.clone(); |
| 76 | +//! let display = bidi_info.reorder_line(para, line); |
| 77 | +//! assert_eq!( |
| 78 | +//! display, |
| 79 | +//! concat![ |
| 80 | +//! "a", |
| 81 | +//! "b", |
| 82 | +//! "c", |
| 83 | +//! "ג", |
| 84 | +//! "ב", |
| 85 | +//! "א", |
| 86 | +//! ] |
| 87 | +//! ); |
| 88 | +//! |
| 89 | +//! // Normalization |
| 90 | +//! |
| 91 | +//! assert_eq!(compose('A', '\u{30a}'), Some('Å')); |
| 92 | +//! |
| 93 | +//! let s = "ÅΩ"; |
| 94 | +//! let c = s.nfc().collect::<String>(); |
| 95 | +//! assert_eq!(c, "ÅΩ"); |
| 96 | +//! } |
| 97 | +//! ``` |
30 | 98 |
|
31 | 99 | pub extern crate unic_bidi as bidi; |
32 | 100 | pub extern crate unic_idna as idna; |
|
0 commit comments