pub struct RevisionEtag<'a> { /* private fields */ }Expand description
Formats and parses strong revision ETags of the form "<prefix><revision>".
The prefix is compared byte for byte, so it is case-sensitive. The revision is canonical
decimal: no sign, no leading zeros, and 0 is allowed.
Implementations§
Source§impl<'a> RevisionEtag<'a>
impl<'a> RevisionEtag<'a>
Sourcepub const fn new(prefix: &'a str) -> Self
pub const fn new(prefix: &'a str) -> Self
Creates a codec for a fixed prefix, such as "rev-".
§Panics
Panics when the prefix is invalid. In a const item the panic is a compile error. Use
RevisionEtag::try_new for prefixes built at runtime.
Sourcepub const fn try_new(prefix: &'a str) -> Result<Self, InvalidEtagPrefix>
pub const fn try_new(prefix: &'a str) -> Result<Self, InvalidEtagPrefix>
Creates a codec for a prefix built at runtime.
Sourcepub fn format(&self, revision: Revision) -> String
pub fn format(&self, revision: Revision) -> String
Returns the quoted ETag, for example "rev-42" including the quotes.
Sourcepub fn header_value(&self, revision: Revision) -> HeaderValue
pub fn header_value(&self, revision: Revision) -> HeaderValue
Returns the quoted ETag as an ETag response header value.
Sourcepub fn parse(&self, value: &HeaderValue) -> Result<Revision, InvalidIfMatch>
pub fn parse(&self, value: &HeaderValue) -> Result<Revision, InvalidIfMatch>
Parses one If-Match field value.
Sourcepub fn required_if_match(
&self,
headers: &HeaderMap,
) -> Result<Revision, PreconditionError>
pub fn required_if_match( &self, headers: &HeaderMap, ) -> Result<Revision, PreconditionError>
Reads the revision from a route that requires If-Match.
A missing header returns PreconditionError::Required.
Sourcepub fn optional_if_match(
&self,
headers: &HeaderMap,
) -> Result<Option<Revision>, PreconditionError>
pub fn optional_if_match( &self, headers: &HeaderMap, ) -> Result<Option<Revision>, PreconditionError>
Reads the revision from a route where If-Match is optional.
A missing header returns Ok(None), which permits an unconditional write.
Trait Implementations§
Source§impl<'a> Clone for RevisionEtag<'a>
impl<'a> Clone for RevisionEtag<'a>
impl<'a> Copy for RevisionEtag<'a>
Source§impl<'a> Debug for RevisionEtag<'a>
impl<'a> Debug for RevisionEtag<'a>
impl<'a> Eq for RevisionEtag<'a>
Source§impl<'a> PartialEq for RevisionEtag<'a>
impl<'a> PartialEq for RevisionEtag<'a>
impl<'a> StructuralPartialEq for RevisionEtag<'a>
Auto Trait Implementations§
impl<'a> Freeze for RevisionEtag<'a>
impl<'a> RefUnwindSafe for RevisionEtag<'a>
impl<'a> Send for RevisionEtag<'a>
impl<'a> Sync for RevisionEtag<'a>
impl<'a> Unpin for RevisionEtag<'a>
impl<'a> UnsafeUnpin for RevisionEtag<'a>
impl<'a> UnwindSafe for RevisionEtag<'a>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.