Skip to content

Commit f66e239

Browse files
committed
[src/lib.rs] Add basic example to create docblock
1 parent 35ae4eb commit f66e239

File tree

1 file changed

+68
-0
lines changed

1 file changed

+68
-0
lines changed

src/lib.rs

Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,74 @@
2727
//! - [`normal`](/unic-normal): Unicode Normalization Forms (USA\#15).
2828
//!
2929
//! - [`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+
//! ```
3098
3199
pub extern crate unic_bidi as bidi;
32100
pub extern crate unic_idna as idna;

0 commit comments

Comments
 (0)