Skip to main content

IfNoneMatch

Enum IfNoneMatch 

Source
pub enum IfNoneMatch {
    Any,
    Tags(Vec<ETag>),
}
Expand description

Models the If-None-Match conditional request header (RFC 7232 §3.2).

A request with If-None-Match: * fails if any representation exists. A request with a list of ETags fails (i.e., condition is false) if the current ETag matches any of the listed ETags (weak comparison).

Variants§

§

Any

Condition fails if any representation exists (If-None-Match: *).

§

Tags(Vec<ETag>)

Condition fails if the current ETag weakly matches any of these.

Implementations§

Source§

impl IfNoneMatch

Source

pub fn matches(&self, current: &ETag) -> bool

Returns true when the condition is satisfied (i.e., the server should proceed with the request).

Per RFC 7232 §3.2, the condition is satisfied when the current ETag does not weakly match any tag in the list (or no representation exists for Any).

use api_bones::etag::{ETag, IfNoneMatch};

// Wildcard is never satisfied (any representation exists).
assert!(!IfNoneMatch::Any.matches(&ETag::strong("v1")));

// Satisfied when current tag is NOT in the list.
let cond = IfNoneMatch::Tags(vec![ETag::strong("v1")]);
assert!(cond.matches(&ETag::strong("v2")));
assert!(!cond.matches(&ETag::strong("v1")));

Trait Implementations§

Source§

impl Clone for IfNoneMatch

Source§

fn clone(&self) -> IfNoneMatch

Returns a duplicate 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 Debug for IfNoneMatch

Source§

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

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

impl<'de> Deserialize<'de> for IfNoneMatch

Source§

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 PartialEq for IfNoneMatch

Source§

fn eq(&self, other: &IfNoneMatch) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

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

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Serialize for IfNoneMatch

Source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
Source§

impl Eq for IfNoneMatch

Source§

impl StructuralPartialEq for IfNoneMatch

Auto Trait Implementations§

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> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. 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,

Source§

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>,

Source§

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>,

Source§

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.
Source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,