range_cache/error.rs
1//! Public validation errors.
2
3use std::ops::Range;
4
5/// A byte-range or payload validation error.
6#[derive(Clone, Debug, Eq, PartialEq, thiserror::Error)]
7pub enum RangeError {
8 /// A range had its end before its start.
9 #[error("reversed byte range {start}..{end}")]
10 ReversedRange {
11 /// Inclusive start offset.
12 start: usize,
13 /// Exclusive end offset.
14 end: usize,
15 },
16 /// A payload length did not equal the range length.
17 #[error("range {range:?} requires {expected} bytes, received {actual}")]
18 PayloadLengthMismatch {
19 /// Range associated with the payload.
20 range: Range<usize>,
21 /// Required byte length.
22 expected: usize,
23 /// Actual byte length.
24 actual: usize,
25 },
26}