[][src]Struct langtag::Extension

pub struct Extension<T: ?Sized = [u8]> { /* fields omitted */ }

Single extension and its subtags.

Extensions provide a mechanism for extending language tags for use in various applications. They are intended to identify information that is commonly used in association with languages or language tags but that is not part of language identification.

An extension is composed of a singleton (a single character) followed by associated subtags. For instance a-subtag1-subtag2. Each subtag of the extension is represented by the ExtensionSubtag type.

Implementations

impl<T: AsRef<[u8]>> Extension<T>[src]

pub fn new(t: T) -> Result<Extension<T>, Error>[src]

Parse and use the given data.

pub unsafe fn new_unchecked(t: T) -> Extension<T>[src]

Use the given data as buffer without parsing it.

Safety

The given data must be syntactically correct.

impl Extension<[u8]>[src]

pub fn parse<'a, T: AsRef<[u8]> + ?Sized>(
    bytes: &'a T
) -> Result<&'a Extension<[u8]>, Error>
[src]

Parse and borrow the given data.

pub unsafe fn parse_unchecked<'a, T: AsRef<[u8]> + ?Sized>(
    bytes: &'a T
) -> &'a Extension<[u8]>
[src]

Borrow the given data without checking that it is syntactically correct.

Safety

The data must be syntactically correct.

impl Extension<Vec<u8>>[src]

pub fn parse_copy<'a, T: AsRef<[u8]> + ?Sized>(
    bytes: &'a T
) -> Result<Extension<Vec<u8>>, Error>
[src]

Parse and copy the input data.

pub unsafe fn parse_copy_unchecked<'a, T: AsRef<[u8]> + ?Sized>(
    bytes: &'a T
) -> Extension<Vec<u8>>
[src]

Copy the input data without checking its syntax correctness.

Safety

The input data must be syntactically correct.

impl<T: AsRef<[u8]> + ?Sized> Extension<T>[src]

pub fn len(&self) -> usize[src]

Bytes length.

pub fn as_bytes(&self) -> &[u8][src]

Return a reference to the underlying data.

pub fn as_str(&self) -> &str[src]

Return a reference to the underlying data as a string.

impl Extension[src]

pub fn empty() -> &'static Extension[src]

Empty list (the empty string).

pub fn is_empty(&self) -> bool[src]

Checks if the list is empty.

pub fn first(&self) -> Option<&ExtensionSubtag>[src]

Returns the first subtag of the list (if any).

pub fn last(&self) -> Option<&ExtensionSubtag>[src]

Returns the last subtag of the list (if any).

pub fn iter(&self) -> ExtensionIter<'_>

Notable traits for ExtensionIter<'a>

impl<'a> Iterator for ExtensionIter<'a> type Item = &'a ExtensionSubtag;
[src]

Iterate through the subtags of the list.

pub fn contains<T: AsRef<[u8]> + ?Sized>(&self, subtag: &T) -> bool[src]

Checks if the given subtag is included the list.

impl Extension[src]

pub fn singleton(&self) -> u8[src]

Return the singletong identifying the extension.

Trait Implementations

impl<T: AsRef<[u8]> + ?Sized> AsRef<[u8]> for Extension<T>[src]

impl<T: AsRef<[u8]> + ?Sized> AsRef<str> for Extension<T>[src]

impl<T: AsRef<[u8]> + ?Sized> Debug for Extension<T>[src]

impl<T: ?Sized> Deref for Extension<T>[src]

type Target = T

The resulting type after dereferencing.

impl<T: AsRef<[u8]> + ?Sized> Display for Extension<T>[src]

impl<T: AsRef<[u8]> + ?Sized> Eq for Extension<T>[src]

impl<T: AsRef<[u8]> + ?Sized> Hash for Extension<T>[src]

impl<'a> IntoIterator for &'a Extension[src]

type Item = &'a ExtensionSubtag

The type of the elements being iterated over.

type IntoIter = ExtensionIter<'a>

Which kind of iterator are we turning this into?

impl<T: AsRef<[u8]> + ?Sized> Ord for Extension<T>[src]

impl<T: AsRef<[u8]> + ?Sized> PartialEq<[u8]> for Extension<T>[src]

impl<T: AsRef<[u8]> + ?Sized> PartialEq<Extension<T>> for [u8][src]

impl<T: AsRef<[u8]> + ?Sized> PartialEq<Extension<T>> for str[src]

impl<T: AsRef<[u8]> + ?Sized, U: AsRef<[u8]> + ?Sized> PartialEq<Extension<U>> for Extension<T>[src]

impl<T: AsRef<[u8]> + ?Sized> PartialEq<str> for Extension<T>[src]

impl<T: AsRef<[u8]> + ?Sized, U: AsRef<[u8]> + ?Sized> PartialOrd<Extension<U>> for Extension<T>[src]

impl<'a> TryFrom<&'a [u8]> for &'a Extension<[u8]>[src]

type Error = Error

The type returned in the event of a conversion error.

impl<'a> TryFrom<&'a str> for &'a Extension<[u8]>[src]

type Error = Error

The type returned in the event of a conversion error.

Auto Trait Implementations

impl<T: ?Sized> RefUnwindSafe for Extension<T> where
    T: RefUnwindSafe
[src]

impl<T: ?Sized> Send for Extension<T> where
    T: Send
[src]

impl<T: ?Sized> Sync for Extension<T> where
    T: Sync
[src]

impl<T: ?Sized> Unpin for Extension<T> where
    T: Unpin
[src]

impl<T: ?Sized> UnwindSafe for Extension<T> where
    T: UnwindSafe
[src]

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> ToString for T where
    T: Display + ?Sized
[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.