Skip to main content

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}