pub enum Range {
Bytes(Vec<ByteRangeSpec>),
Unregistered(String, String),
}Expand description
Range header, defined
in RFC 7233 §3.1
The “Range” header field on a GET request modifies the method semantics to request transfer of only one or more sub-ranges of the selected representation data, rather than the entire selected representation data.
ABNF
Range = byte-ranges-specifier / other-ranges-specifier
other-ranges-specifier = other-range-unit "=" other-range-set
other-range-set = 1*VCHAR
bytes-unit = "bytes"
byte-ranges-specifier = bytes-unit "=" byte-range-set
byte-range-set = 1#(byte-range-spec / suffix-byte-range-spec)
byte-range-spec = first-byte-pos "-" [last-byte-pos]
suffix-byte-range-spec = "-" suffix-length
suffix-length = 1*DIGIT
first-byte-pos = 1*DIGIT
last-byte-pos = 1*DIGIT
Example Values
bytes=1000-bytes=-50bytes=0-1,30-40bytes=0-10,20-90,-100custom_unit=0-123custom_unit=xxx-yyy
Examples
use actix_web::http::header::{Range, ByteRangeSpec};
use actix_web::HttpResponse;
let mut builder = HttpResponse::Ok();
builder.insert_header(Range::Bytes(
vec![ByteRangeSpec::FromTo(1, 100), ByteRangeSpec::From(200)]
));
builder.insert_header(Range::Unregistered("letters".to_owned(), "a-f".to_owned()));
builder.insert_header(Range::bytes(1, 100));
builder.insert_header(Range::bytes_multi(vec![(1, 100), (200, 300)]));Variants
Bytes(Vec<ByteRangeSpec>)
Byte range.
Unregistered(String, String)
Custom range, with unit not registered at IANA.
(other-range-unit: String , other-range-set: String)
Implementations
Trait Implementations
sourceimpl FromStr for Range
impl FromStr for Range
type Err = ParseError
type Err = ParseError
The associated error which can be returned from parsing.
sourceimpl Header for Range
impl Header for Range
sourcefn name() -> HeaderName
fn name() -> HeaderName
Returns the name of the header field.
sourcefn parse<T: HttpMessage>(msg: &T) -> Result<Self, ParseError>
fn parse<T: HttpMessage>(msg: &T) -> Result<Self, ParseError>
Parse the header from a HTTP message.
sourceimpl TryIntoHeaderValue for Range
impl TryIntoHeaderValue for Range
type Error = InvalidHeaderValue
type Error = InvalidHeaderValue
The type returned in the event of a conversion error.
sourcefn try_into_value(self) -> Result<HeaderValue, Self::Error>
fn try_into_value(self) -> Result<HeaderValue, Self::Error>
Try to convert value to a HeaderValue.
impl Eq for Range
impl StructuralEq for Range
impl StructuralPartialEq for Range
Auto Trait Implementations
impl RefUnwindSafe for Range
impl Send for Range
impl Sync for Range
impl Unpin for Range
impl UnwindSafe for Range
Blanket Implementations
sourceimpl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
sourceimpl<Q, K> Equivalent<K> for Qwhere
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
impl<Q, K> Equivalent<K> for Qwhere
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
sourcefn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key and return true if they are equal.