Expand description
This crate provides an implementation of language tags defined by RFC5646 (BCP47).
§Usage
You can easily parse new language from any string:
use langtag::LangTag;
fn main() -> Result<(), langtag::InvalidLangTag<&'static str>> {
let tag = LangTag::new("fr-FR")?;
assert_eq!(tag.language().unwrap().primary(), "fr");
assert!(tag == "Fr-fr"); // comparison is case-insensitive.
Ok(())
}
Note that LangTag::new
does not copy the data it is given,
but only borrows it. The LangTagBuf
type allows you to own the language
tag. Once parsed, you can explore every component of the language tag using
the provided functions.
Structs§
- Extended
Lang Tag - Single extended language subtag.
- Extended
Lang TagBuf - Owned ExtendedLangTag.
- Extension
- Single extension and its subtags.
- Extension
Buf - Owned extension.
- Extension
Iter - Extension
Subtag - Single extension subtag.
- Extension
Subtag Buf - Owned ExtensionSubtag.
- Extensions
- List of extensions.
- Extensions
Buf - Owned Extensions.
- Extensions
Iter - Invalid
Extended Lang Tag - Invalid
Extension - Invalid
Extension Subtag - Invalid
Extensions - Invalid
Grandfathered Tag - Invalid
Lang Tag - Invalid
Language - Invalid
Language Extension - Invalid
Normal Lang Tag - Invalid
Primary Language - Invalid
Private Use - Invalid
Private UseSubtag - Invalid
Region - Invalid
Script - Invalid
Singleton - Invalid
Variant - Invalid
Variants - LangTag
- Any language tag (normal, private use or grandfathered).
- Lang
TagBuf - Owned LangTag.
- Language
- Primary and extended language subtags.
- Language
Buf - Owned language.
- Language
Extension - List of extended language subtags.
- Language
Extension Buf - Owned extlang.
- Language
Extension Iter - Normal
Lang Tag - Normal language tag.
- Normal
Lang TagBuf - Owned langtag.
- Primary
Language - Primary language subtag.
- Primary
Language Buf - Owned extlang.
- Private
Use - Private use.
- Private
UseBuf - Owned privateuse.
- Private
UseIter - Private
UseSubtag - Private use subtag.
- Private
UseSubtag Buf - Owned PrivateUseSubtag.
- Region
- Region subtag.
- Region
Buf - Owned region.
- Script
- Script subtag.
- Script
Buf - Owned script.
- Singleton
- Extension identifier.
- Variant
- Single variant subtag.
- Variant
Buf - Owned variant.
- Variants
- List of variant subtags.
- Variants
Buf - Owned Variants.
- Variants
Iter
Enums§
- Grandfathered
Lang Tag - Grandfathered tags.
- Kind
- Language tag kind (normal, private use or grandfathered).
- Typed
Lang Tag - Language tag with type information (normal, private use or grandfathered).
Statics§
- GRANDFATHERED
- List of all grandfathered tags.
Type Aliases§
- Private
UseLang Tag - Private use language tag.
- Private
UseLang TagBuf - Owned private use language tag.