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=-2000bytes=0-1,30-40bytes=0-10,20-90,-100custom_unit=0-123custom_unit=xxx-yyy
Examples
use mco_http::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 mco_http::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
source§impl PartialEq for Range
impl PartialEq 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§
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