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.
You can use this library with no_std by disabling the std feature,
though it will also disable all the *Buf types.
Macros§
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 extendedlangtag error.
- Invalid
Extension - Invalid extension error.
- Invalid
Extension Subtag - Invalid extensionsubtag error.
- Invalid
Extensions - Invalid extensions error.
- Invalid
Grandfathered Tag - Invalid
Lang Tag - Invalid langtag error.
- Invalid
Language - Invalid language error.
- Invalid
Language Extension - Invalid languageextension error.
- Invalid
Normal Lang Tag - Invalid normallangtag error.
- Invalid
Primary Language - Invalid primarylanguage error.
- Invalid
Private Use - Invalid privateuse error.
- Invalid
Private UseSubtag - Invalid privateusesubtag error.
- Invalid
Region - Invalid region error.
- Invalid
Script - Invalid script error.
- Invalid
Singleton - Invalid
Variant - Invalid variant error.
- Invalid
Variants - Invalid variants error.
- 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 languageextension.
- Language
Extension Iter - Normal
Lang Tag - Normal language tag.
- Normal
Lang TagBuf - Owned normallangtag.
- Primary
Language - Primary language subtag.
- Primary
Language Buf - Owned primarylanguage.
- 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.