pub struct Lang { /* private fields */ }Expand description
A validated language tag wrapper that ensures normalization and validity.
This type wraps an oxilangtag::LanguageTag and provides a type-safe way to work
with IETF BCP 47 language tags (e.g., “en”, “en-US”, “es-ES”). The language tag is
validated and normalized upon construction, ensuring it conforms to the standard.
§Normalization
Language tags are automatically normalized according to BCP 47 rules:
- The primary language subtag is lowercased (e.g., “EN” → “en”)
- Script subtags are title-cased (e.g., “latn” → “Latn”)
- Region subtags are uppercased (e.g., “us” → “US”)
§Serialization
The #[serde(transparent)] attribute ensures that this type serializes as a plain
string rather than a struct with a single field, making it compatible with JSON
schemas that expect language tags as strings.
Implementations§
Trait Implementations§
Source§impl<'de> Deserialize<'de> for Lang
impl<'de> Deserialize<'de> for Lang
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Source§impl Ord for Lang
impl Ord for Lang
Source§impl PartialOrd for Lang
impl PartialOrd for Lang
impl Eq for Lang
impl StructuralPartialEq for Lang
Auto Trait Implementations§
impl Freeze for Lang
impl RefUnwindSafe for Lang
impl Send for Lang
impl Sync for Lang
impl Unpin for Lang
impl UnsafeUnpin for Lang
impl UnwindSafe for Lang
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Comparable<K> for Q
impl<Q, K> Comparable<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key and return true if they are equal.Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
Source§impl<T> ToStringFallible for Twhere
T: Display,
impl<T> ToStringFallible for Twhere
T: Display,
Source§fn try_to_string(&self) -> Result<String, TryReserveError>
fn try_to_string(&self) -> Result<String, TryReserveError>
ToString::to_string, but without panic on OOM.