Struct gigtag::DecodedTags

source ·
pub struct DecodedTags<F, L, N, V> {
    pub tags: Vec<Tag<F, L, N, V>>,
    pub undecoded_prefix: String,
}
Expand description

Tags decoded from a text field

Fields§

§tags: Vec<Tag<F, L, N, V>>

Valid, decoded tags

§undecoded_prefix: String

The remaining, undecoded prefix.

Implementations§

source§

impl<F, L, N, V> DecodedTags<F, L, N, V>
where F: Facet, L: Label, N: Name, V: Value,

source

pub fn decode_str(encoded: &str) -> Self

Decode from a string slice.

source

pub fn encode_into<W: Write>(&self, write: &mut W) -> Result

Encode the contents into a separate buffer.

§Errors

Returns an fmt::Error if writing into the buffer fails.

source

pub fn reencode(self) -> Result<String, Error>

Re-encode the contents.

§Errors

Returns an fmt::Error if writing into the buffer fails.

source

pub fn reorder_and_dedup(&mut self)

Reorder and deduplicate tags.

Canonical ordering:

  1. Tags without a facet
  2. Tags with a non-date-like facet
  3. Tags with a date-like facet (by descending suffix)

Within each group tags are sorted by facet, then by label. For tags with equal facets those with a label are sorted before those without a label.

Tags with a date-like facet are sorted in descending order by their date-like suffix, i.e. newer dates are sorted before older dates.

Trait Implementations§

source§

impl<F: Clone, L: Clone, N: Clone, V: Clone> Clone for DecodedTags<F, L, N, V>

source§

fn clone(&self) -> DecodedTags<F, L, N, V>

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl<F: Debug, L: Debug, N: Debug, V: Debug> Debug for DecodedTags<F, L, N, V>

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<F: PartialEq, L: PartialEq, N: PartialEq, V: PartialEq> PartialEq for DecodedTags<F, L, N, V>

source§

fn eq(&self, other: &DecodedTags<F, L, N, V>) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl<F: Eq, L: Eq, N: Eq, V: Eq> Eq for DecodedTags<F, L, N, V>

source§

impl<F, L, N, V> StructuralPartialEq for DecodedTags<F, L, N, V>

Auto Trait Implementations§

§

impl<F, L, N, V> RefUnwindSafe for DecodedTags<F, L, N, V>

§

impl<F, L, N, V> Send for DecodedTags<F, L, N, V>
where F: Send, L: Send, N: Send, V: Send,

§

impl<F, L, N, V> Sync for DecodedTags<F, L, N, V>
where F: Sync, L: Sync, N: Sync, V: Sync,

§

impl<F, L, N, V> Unpin for DecodedTags<F, L, N, V>
where F: Unpin, L: Unpin, N: Unpin, V: Unpin,

§

impl<F, L, N, V> UnwindSafe for DecodedTags<F, L, N, V>

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> ToOwned for T
where T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

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

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.