Enum hyperx::header::Range [−][src]
pub enum Range {
Bytes(Vec<ByteRangeSpec>),
Unregistered(String, String),
}
Expand description
Range
header, defined in RFC7233
The “Range” header field on a GET request modifies the method semantics to request transfer of only one or more subranges 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]
first-byte-pos = 1*DIGIT
last-byte-pos = 1*DIGIT
Example values
bytes=1000-
bytes=-2000
bytes=0-1,30-40
bytes=0-10,20-90,-100
custom_unit=0-123
custom_unit=xxx-yyy
Examples
use hyperx::header::{Range, ByteRangeSpec, TypedHeaders};
let mut headers = http::HeaderMap::new();
headers.encode(&Range::Bytes(
vec![ByteRangeSpec::FromTo(1, 100), ByteRangeSpec::AllFrom(200)]
));
headers.clear();
headers.encode(&Range::Unregistered("letters".to_owned(), "a-f".to_owned()));
use hyperx::header::{Range, TypedHeaders};
let mut headers = http::HeaderMap::new();
headers.encode(&Range::bytes(1, 100));
headers.clear();
headers.encode(&Range::bytes_multi(vec![(1, 100), (200, 300)]));
Variants
Bytes(Vec<ByteRangeSpec>)
Byte range
Tuple Fields of Bytes
0: Vec<ByteRangeSpec>
Custom range, with unit not registered at IANA
(other-range-unit
: String , other-range-set
: String)
Implementations
Trait Implementations
The HeaderName
from the http crate for this header.
Auto Trait Implementations
impl RefUnwindSafe for Range
impl UnwindSafe for Range
Blanket Implementations
Mutably borrows from an owned value. Read more