Struct hyper::header::EntityTag [] [src]

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 1 ETag 2 Strong Comparison Weak Comparison
W/"1" W/"1" no match match
W/"1" W/"2" no match no match
W/"1" "1" no match match
"1" "1" match match

Fields

weak

Weakness indicator for the tag

Methods

impl EntityTag

fn new(weak: bool, tag: String) -> EntityTag

Constructs a new EntityTag.

Panics

If the tag contains invalid characters.

fn tag(&self) -> &str

Get the tag.

fn set_tag(&mut self, tag: String)

Set the tag.

Panics

If the tag contains invalid characters.

fn strong_eq(&self, other: &EntityTag) -> bool

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

fn weak_eq(&self, other: &EntityTag) -> bool

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".

fn strong_ne(&self, other: &EntityTag) -> bool

The inverse of EntityTag.strong_eq().

fn weak_ne(&self, other: &EntityTag) -> bool

The inverse of EntityTag.weak_eq().

Trait Implementations

impl Display for EntityTag

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

impl FromStr for EntityTag

type Err = Error

fn from_str(s: &str) -> Result<EntityTag>

Derived Implementations

impl PartialEq for EntityTag

fn eq(&self, __arg_0: &EntityTag) -> bool

fn ne(&self, __arg_0: &EntityTag) -> bool

impl Eq for EntityTag

impl Debug for EntityTag

fn fmt(&self, __arg_0: &mut Formatter) -> Result

impl Clone for EntityTag

fn clone(&self) -> EntityTag

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