[][src]Struct rocket_etag_if_none_match::EntityTag

pub struct EntityTag {
    pub weak: bool,
    // some fields omitted
}

An entity tag, defined in RFC7232

An entity tag consists of a string enclosed by two literal double quotes. Preceding the first double quote is an optional weakness indicator, which always looks like W/. Examples for valid tags are "xyzzy" and W/"xyzzy".

ABNF

entity-tag = [ weak ] opaque-tag
weak       = %x57.2F ; "W/", case-sensitive
opaque-tag = DQUOTE *etagc DQUOTE
etagc      = %x21 / %x23-7E / obs-text
           ; VCHAR except double quotes, plus obs-text

Comparison

To check if two entity tags are equivalent in an application always use the strong_eq or weak_eq methods based on the context of the Tag. Only use == to check if two tags are identical.

The example below shows the results for a set of entity-tag pairs and both the weak and strong comparison function results:

ETag 1ETag 2Strong ComparisonWeak Comparison
W/"1"W/"1"no matchmatch
W/"1"W/"2"no matchno match
W/"1""1"no matchmatch
"1""1"matchmatch

Fields

weak: bool

Weakness indicator for the tag

Implementations

impl EntityTag[src]

pub fn new(weak: bool, tag: String) -> EntityTag[src]

Constructs a new EntityTag.

Panics

If the tag contains invalid characters.

pub fn weak(tag: String) -> EntityTag[src]

Constructs a new weak EntityTag.

Panics

If the tag contains invalid characters.

pub fn strong(tag: String) -> EntityTag[src]

Constructs a new strong EntityTag.

Panics

If the tag contains invalid characters.

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

Get the tag.

pub fn set_tag(&mut self, tag: String)[src]

Set the tag.

Panics

If the tag contains invalid characters.

pub fn strong_eq(&self, other: &EntityTag) -> bool[src]

For strong comparison two entity-tags are equivalent if both are not weak and their opaque-tags match character-by-character.

pub fn weak_eq(&self, other: &EntityTag) -> bool[src]

For weak comparison two entity-tags are equivalent if their opaque-tags match character-by-character, regardless of either or both being tagged as "weak".

pub fn strong_ne(&self, other: &EntityTag) -> bool[src]

The inverse of EntityTag.strong_eq().

pub fn weak_ne(&self, other: &EntityTag) -> bool[src]

The inverse of EntityTag.weak_eq().

Trait Implementations

impl Clone for EntityTag[src]

impl Debug for EntityTag[src]

impl Display for EntityTag[src]

impl Eq for EntityTag[src]

impl FromStr for EntityTag[src]

type Err = Error

The associated error which can be returned from parsing.

impl PartialEq<EntityTag> for EntityTag[src]

Auto Trait Implementations

Blanket Implementations

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

impl<T, I> AsResult<T, I> for T where
    I: Input, 

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

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

impl<Q, K> Equivalent<K> for Q where
    K: Borrow<Q> + ?Sized,
    Q: Eq + ?Sized
[src]

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

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

impl<T> IntoCollection<T> for T

impl<T> Same<T> for T

type Output = T

Should always be Self

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

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.

impl<T> Typeable for T where
    T: Any

impl<V, T> VZip<V> for T where
    V: MultiLane<T>,