// This file is part of ICU4X. For terms of use, please see the file // called LICENSE at the top level of the ICU4X source tree // (online at: https://github.com/unicode-org/icu4x/blob/main/LICENSE ). impl_tinystr_subtag!( /// A variant subtag (examples: `"macos"`, `"posix"`, `"1996"` etc.) /// /// [`Variant`] represents a Unicode base language code conformat to the /// [`unicode_variant_id`] field of the Language and Locale Identifier. /// /// # Examples /// /// ``` /// use icu::locid::subtags::Variant; /// /// let variant: Variant = /// "macos".parse().expect("Failed to parse a variant subtag."); /// ``` /// /// [`unicode_variant_id`]: https://unicode.org/reports/tr35/#unicode_variant_id Variant, subtags::Variant, subtags_variant, 4..=8, s, s.is_ascii_alphanumeric() && (s.len() != 4 || s.all_bytes()[0].is_ascii_digit()), s.to_ascii_lowercase(), s.is_ascii_lowercase() && s.is_ascii_alphanumeric() && (s.len() != 4 || s.all_bytes()[0].is_ascii_digit()), InvalidSubtag, ["posix", "1996"], ["yes"], );