Skip to content

Commit 694fb45

Browse files
authored
feat: add method to check if AcceptRanges is bytes (#159)
1 parent 815b724 commit 694fb45

File tree

1 file changed

+27
-1
lines changed

1 file changed

+27
-1
lines changed

src/common/accept_ranges.rs

Lines changed: 27 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
use http::HeaderValue;
2+
13
use util::FlatCsv;
24

35
/// `Accept-Ranges` header, defined in [RFC7233](http://tools.ietf.org/html/rfc7233#section-2.3)
@@ -34,9 +36,33 @@ derive_header! {
3436
name: ACCEPT_RANGES
3537
}
3638

39+
const ACCEPT_RANGES_BYTES: HeaderValue = ::HeaderValue::from_static("bytes");
40+
3741
impl AcceptRanges {
3842
/// A constructor to easily create the common `Accept-Ranges: bytes` header.
3943
pub fn bytes() -> Self {
40-
AcceptRanges(::HeaderValue::from_static("bytes").into())
44+
AcceptRanges(ACCEPT_RANGES_BYTES.into())
45+
}
46+
47+
/// Check if the unit is `bytes`.
48+
pub fn is_bytes(&self) -> bool {
49+
self.0.value == ACCEPT_RANGES_BYTES
50+
}
51+
}
52+
53+
#[cfg(test)]
54+
mod tests {
55+
use super::*;
56+
57+
#[test]
58+
fn bytes() {
59+
let bytes_range = AcceptRanges::bytes();
60+
assert!(bytes_range.is_bytes());
61+
}
62+
63+
#[test]
64+
fn bytes_fails() {
65+
let none_range = AcceptRanges(::HeaderValue::from_static("none").into());
66+
assert!(!none_range.is_bytes());
4167
}
4268
}

0 commit comments

Comments
 (0)