Expand description
Range request and Content-Range response header types (RFC 7233).
ByteRange models a single byte range specifier.
RangeHeader models the Range request header, which may contain one or
more byte ranges or a suffix range.
ContentRange models the Content-Range response header, indicating
which portion of a resource’s representation is being returned.
§Example
use api_bones::range::{ByteRange, ContentRange, RangeHeader};
// Parse a Range request header.
let range: RangeHeader = "bytes=0-499".parse().unwrap();
assert_eq!(range, RangeHeader::Bytes(vec![ByteRange::FromTo(0, 499)]));
// Build a Content-Range response header.
let cr = ContentRange::bytes(0, 499, Some(1234));
assert_eq!(cr.to_string(), "bytes 0-499/1234");
// Validate the range against the resource length.
assert!(ByteRange::FromTo(0, 499).is_valid(1234));
assert!(!ByteRange::FromTo(1234, 9999).is_valid(1234)); // first >= lengthEnums§
- Byte
Range - A single byte range specifier as used in the
Rangeheader (RFC 7233 §2.1). - Content
Range - The
Content-Rangeresponse header (RFC 7233 §4.2). - Parse
Range Error - Error returned when parsing a
RangeorContent-Rangeheader fails. - Range
Header - The
Rangerequest header (RFC 7233 §3.1).