Enum iron::headers::IfRange [] [src]

pub enum IfRange {
    EntityTag(EntityTag),
    Date(HttpDate),
}

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

Examples

use hyper::header::{Headers, IfRange, EntityTag};

let mut headers = Headers::new();
headers.set(IfRange::EntityTag(EntityTag::new(false, "xyzzy".to_owned())));
// extern crate time;

use hyper::header::{Headers, IfRange, HttpDate};
use time::{self, Duration};

let mut headers = Headers::new();
headers.set(IfRange::Date(HttpDate(time::now() - Duration::days(1))));

Variants

EntityTag

The entity-tag the client has of the resource

Date

The date when the client retrieved the resource

Trait Implementations

impl Header for IfRange

fn header_name() -> &'static str

fn parse_header(raw: &[Vec<u8>]) -> Result<IfRange, Error>

impl HeaderFormat for IfRange

fn fmt_header(&self, f: &mut Formatter) -> Result<(), Error>

impl Display for IfRange

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

Derived Implementations

impl PartialEq<IfRange> for IfRange

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

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

impl Debug for IfRange

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

impl Clone for IfRange

fn clone(&self) -> IfRange

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