unicode_locale_parser/
lib.rs

1//! The parser for [Unicode Locale Identifiers](https://unicode.org/reports/tr35/#Unicode_locale_identifier)
2//!
3//! ## ⛏️ Conformance
4//!
5//! All code implements of [Unicode UTS #35 Language and Locale Identifiers](https://unicode.org/reports/tr35/#Identifiers).
6//!
7//! ## 🚀 Usages
8//!
9//! ```
10//! use unicode_locale_parser::parse_locale_id;
11//!
12//! # fn main() {
13//! // simple language
14//! let locale = parse_locale_id("ja-JP");
15//! println!("{:#?}", locale);
16//!
17//! // language & unicode locale extension
18//! let locale = parse_locale_id("de-Latn-DE-u-ca-buddhist");
19//! println!("{:#?}", locale);
20//! # }
21//! ```
22mod constants;
23mod extensions;
24mod shared;
25mod subtags;
26
27mod errors;
28mod lang;
29mod locale;
30mod measure;
31mod subdivision;
32
33pub use crate::errors::ParserError;
34pub use crate::extensions::other::OtherExtensions;
35pub use crate::extensions::pu::PuExtensions;
36pub use crate::extensions::transformed::TransformedExtensions;
37pub use crate::extensions::unicode_locale::UnicodeLocaleExtensions;
38pub use crate::extensions::Extensions;
39pub use crate::lang::{parse_unicode_language_id as parse_language_id, UnicodeLanguageIdentifier};
40pub use crate::locale::{parse_unicode_locale_id as parse_locale_id, UnicodeLocaleIdentifier};
41pub use crate::measure::{parse_unicode_measure_unit as parse_measure_unit, UnicodeMeasureUnit};
42pub use crate::subdivision::{
43    parse_unicode_subdivision_id as parse_subdivision_id, UnicodeSubdivisionIdentifier,
44};