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=-50
bytes=0-1,30-40
bytes=0-10,20-90,-100
custom_unit=0-123
custom_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 a header
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 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 T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
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<T> Instrument for T
impl<T> Instrument for T
sourcefn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
sourcefn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
sourceimpl<T> TryIntoHeaderPair for T where
T: Header,
impl<T> TryIntoHeaderPair for T where
T: Header,
type Error = <T as TryIntoHeaderValue>::Error
fn try_into_pair(
self
) -> Result<(HeaderName, HeaderValue), <T as TryIntoHeaderPair>::Error>
sourceimpl<T> WithSubscriber for T
impl<T> WithSubscriber for T
sourcefn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> where
S: Into<Dispatch>,
fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> where
S: Into<Dispatch>,
Attaches the provided Subscriber
to this type, returning a
WithDispatch
wrapper. Read more
sourcefn with_current_subscriber(self) -> WithDispatch<Self>
fn with_current_subscriber(self) -> WithDispatch<Self>
Attaches the current default Subscriber
to this type, returning a
WithDispatch
wrapper. Read more