Skip to main content

Module range

Module range 

Source
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 >= length

Enums§

ByteRange
A single byte range specifier as used in the Range header (RFC 7233 §2.1).
ContentRange
The Content-Range response header (RFC 7233 §4.2).
ParseRangeError
Error returned when parsing a Range or Content-Range header fails.
RangeHeader
The Range request header (RFC 7233 §3.1).