pub struct IfRange(/* private fields */);
Expand description
If-Range
header, defined in RFC7233
If a client has a partial copy of a representation and wishes to have an up-to-date copy of the entire representation, it could use the Range header field with a conditional GET (using either or both of If-Unmodified-Since and If-Match.) However, if the precondition fails because the representation has been modified, the client would then have to make a second request to obtain the entire current representation.
The If-Range
header field allows a client to "short-circuit" the
second request. Informally, its meaning is as follows: if the
representation is unchanged, send me the part(s) that I am requesting
in Range; otherwise, send me the entire representation.
§ABNF
If-Range = entity-tag / HTTP-date
§Example values
Sat, 29 Oct 1994 19:43:31 GMT
\"xyzzy\"
§Examples
use headers::IfRange;
use std::time::{SystemTime, Duration};
let fetched = SystemTime::now() - Duration::from_secs(60 * 60 * 24);
let if_range = IfRange::date(fetched);
Implementations§
Source§impl IfRange
impl IfRange
Sourcepub fn date(time: SystemTime) -> IfRange
pub fn date(time: SystemTime) -> IfRange
Create an IfRange
header with a date value.
Sourcepub fn is_modified(
&self,
etag: Option<&ETag>,
last_modified: Option<&LastModified>,
) -> bool
pub fn is_modified( &self, etag: Option<&ETag>, last_modified: Option<&LastModified>, ) -> bool
Checks if the resource has been modified, or if the range request can be served.
Trait Implementations§
Source§impl Header for IfRange
impl Header for IfRange
impl StructuralPartialEq for IfRange
Auto Trait Implementations§
impl !Freeze for IfRange
impl RefUnwindSafe for IfRange
impl Send for IfRange
impl Sync for IfRange
impl Unpin for IfRange
impl UnwindSafe for IfRange
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<T> FutureExt for T
impl<T> FutureExt for T
Source§fn with_context(self, otel_cx: Context) -> WithContext<Self>
fn with_context(self, otel_cx: Context) -> WithContext<Self>
Source§fn with_current_context(self) -> WithContext<Self>
fn with_current_context(self) -> WithContext<Self>
Source§impl<H> HeaderExt for Hwhere
H: Header + Sealed,
impl<H> HeaderExt for Hwhere
H: Header + Sealed,
Source§fn encode_to_value(&self) -> HeaderValue
fn encode_to_value(&self) -> HeaderValue
Header
to HeaderValue
.Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read more