Crate langtag

Source
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§

ExtendedLangTag
Single extended language subtag.
ExtendedLangTagBuf
Owned ExtendedLangTag.
Extension
Single extension and its subtags.
ExtensionBuf
Owned extension.
ExtensionIter
ExtensionSubtag
Single extension subtag.
ExtensionSubtagBuf
Owned ExtensionSubtag.
Extensions
List of extensions.
ExtensionsBuf
Owned Extensions.
ExtensionsIter
InvalidExtendedLangTag
InvalidExtension
InvalidExtensionSubtag
InvalidExtensions
InvalidGrandfatheredTag
InvalidLangTag
InvalidLanguage
InvalidLanguageExtension
InvalidNormalLangTag
InvalidPrimaryLanguage
InvalidPrivateUse
InvalidPrivateUseSubtag
InvalidRegion
InvalidScript
InvalidSingleton
InvalidVariant
InvalidVariants
LangTag
Any language tag (normal, private use or grandfathered).
LangTagBuf
Owned LangTag.
Language
Primary and extended language subtags.
LanguageBuf
Owned language.
LanguageExtension
List of extended language subtags.
LanguageExtensionBuf
Owned extlang.
LanguageExtensionIter
NormalLangTag
Normal language tag.
NormalLangTagBuf
Owned langtag.
PrimaryLanguage
Primary language subtag.
PrimaryLanguageBuf
Owned extlang.
PrivateUse
Private use.
PrivateUseBuf
Owned privateuse.
PrivateUseIter
PrivateUseSubtag
Private use subtag.
PrivateUseSubtagBuf
Owned PrivateUseSubtag.
Region
Region subtag.
RegionBuf
Owned region.
Script
Script subtag.
ScriptBuf
Owned script.
Singleton
Extension identifier.
Variant
Single variant subtag.
VariantBuf
Owned variant.
Variants
List of variant subtags.
VariantsBuf
Owned Variants.
VariantsIter

Enums§

GrandfatheredLangTag
Grandfathered tags.
Kind
Language tag kind (normal, private use or grandfathered).
TypedLangTag
Language tag with type information (normal, private use or grandfathered).

Statics§

GRANDFATHERED
List of all grandfathered tags.

Type Aliases§

PrivateUseLangTag
Private use language tag.
PrivateUseLangTagBuf
Owned private use language tag.