pub enum ContentRange {
Bytes {
first: u64,
last: u64,
complete_length: Option<u64>,
},
Unsatisfiable {
complete_length: u64,
},
}Expand description
The Content-Range response header (RFC 7233 §4.2).
Indicates which portion of a resource’s representation is included in the response body.
use api_bones::range::ContentRange;
let cr = ContentRange::bytes(0, 999, Some(5000));
assert_eq!(cr.to_string(), "bytes 0-999/5000");
let cr_unknown = ContentRange::bytes_unknown_length(200, 299);
assert_eq!(cr_unknown.to_string(), "bytes 200-299/*");
let cr_unsatisfied = ContentRange::unsatisfiable(5000);
assert_eq!(cr_unsatisfied.to_string(), "bytes */5000");Variants§
Bytes
A satisfiable byte range: bytes <first>-<last>/<complete-length or *>.
Fields
Unsatisfiable
An unsatisfiable range: bytes */<complete-length>.
Implementations§
Source§impl ContentRange
impl ContentRange
Sourcepub fn bytes(first: u64, last: u64, complete_length: Option<u64>) -> Self
pub fn bytes(first: u64, last: u64, complete_length: Option<u64>) -> Self
Construct a satisfiable byte range with a known total length.
Sourcepub fn bytes_unknown_length(first: u64, last: u64) -> Self
pub fn bytes_unknown_length(first: u64, last: u64) -> Self
Construct a satisfiable byte range where the total length is unknown.
Sourcepub fn unsatisfiable(complete_length: u64) -> Self
pub fn unsatisfiable(complete_length: u64) -> Self
Construct an unsatisfiable response (bytes */<complete-length>).
Use this when the Range header cannot be satisfied; pair it with a
416 Range Not Satisfiable status code.
Trait Implementations§
Source§impl Clone for ContentRange
impl Clone for ContentRange
Source§fn clone(&self) -> ContentRange
fn clone(&self) -> ContentRange
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for ContentRange
impl Debug for ContentRange
Source§impl<'de> Deserialize<'de> for ContentRange
impl<'de> Deserialize<'de> for ContentRange
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Source§impl Display for ContentRange
impl Display for ContentRange
Source§impl FromStr for ContentRange
impl FromStr for ContentRange
Source§fn from_str(s: &str) -> Result<Self, Self::Err>
fn from_str(s: &str) -> Result<Self, Self::Err>
Parse a Content-Range header value.
Accepts bytes <first>-<last>/<length>, bytes <first>-<last>/*,
and bytes */<length>.
use api_bones::range::ContentRange;
let cr: ContentRange = "bytes 0-999/5000".parse().unwrap();
assert_eq!(cr, ContentRange::bytes(0, 999, Some(5000)));
let cr: ContentRange = "bytes */5000".parse().unwrap();
assert_eq!(cr, ContentRange::unsatisfiable(5000));Source§type Err = ParseRangeError
type Err = ParseRangeError
The associated error which can be returned from parsing.
Source§impl PartialEq for ContentRange
impl PartialEq for ContentRange
Source§impl Serialize for ContentRange
impl Serialize for ContentRange
impl Eq for ContentRange
impl StructuralPartialEq for ContentRange
Auto Trait Implementations§
impl Freeze for ContentRange
impl RefUnwindSafe for ContentRange
impl Send for ContentRange
impl Sync for ContentRange
impl Unpin for ContentRange
impl UnsafeUnpin for ContentRange
impl UnwindSafe for ContentRange
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§impl<T> ValidateIp for Twhere
T: ToString,
impl<T> ValidateIp for Twhere
T: ToString,
Source§fn validate_ipv4(&self) -> bool
fn validate_ipv4(&self) -> bool
Validates whether the given string is an IP V4
Source§fn validate_ipv6(&self) -> bool
fn validate_ipv6(&self) -> bool
Validates whether the given string is an IP V6
Source§fn validate_ip(&self) -> bool
fn validate_ip(&self) -> bool
Validates whether the given string is an IP