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 hyper::header::{Headers, Range, ByteRangeSpec};
let mut headers = Headers::new();
headers.set(Range::Bytes(
vec![ByteRangeSpec::FromTo(1, 100), ByteRangeSpec::AllFrom(200)]
));
headers.clear();
headers.set(Range::Unregistered("letters".to_owned(), "a-f".to_owned()));
use hyper::header::{Headers, Range};
let mut headers = Headers::new();
headers.set(Range::bytes(1, 100));
headers.clear();
headers.set(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§
source§impl HeaderFormat for Range
impl HeaderFormat for Range
impl StructuralPartialEq for Range
Auto Trait Implementations§
impl Freeze for Range
impl RefUnwindSafe for Range
impl Send for Range
impl Sync for Range
impl Unpin for Range
impl UnwindSafe for Range
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
Mutably borrows from an owned value. Read more
source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
🔬This is a nightly-only experimental API. (
clone_to_uninit
)