pub enum RangeVerifyError {
RangeOutOfBounds {
offset: u64,
len: u64,
blob_size: u64,
},
OutboardSize {
expected: usize,
got: usize,
blob_size: u64,
},
RangeDataSize {
expected: u64,
got: usize,
blob_size: u64,
},
Verification {
source: EncodeError,
},
}Expand description
Errors from preparing a verified origin range pull.
Variants§
RangeOutOfBounds
byte_offset is at or past a non-empty blob’s end, or (for the empty
blob) the request is not (0, 0). align_range also raises this when
byte_offset + byte_len runs past the blob or overflows, rejecting the
request; align_range_clamped clamps that same case to the blob’s end
instead of raising it.
Fields
OutboardSize
The supplied outboard is not the length a blob_size-byte blob’s
pre-order outboard must be — the origin served a malformed {H}.obao4.
Fields
RangeDataSize
range_data is not exactly the aligned fetch window’s length — the origin
served a 206 whose body is shorter or longer than [fetch_start, fetch_end)
(e.g. a corrupt/extra tail). Rejected rather than silently ignoring the
surplus (or short-reading the deficit) inside the offset-mapped reader.
Fields
Verification
The fetched range or the outboard did not verify against the wanted root
H — a tampered range, a tampered/foreign outboard, or a wrong root.
Carries the bao codec’s typed cause so a caller can distinguish an
integrity failure (ParentHashMismatch / LeafHashMismatch — do not
retry) from a truncated origin response (Io short read — retryable).
Fields
source: EncodeErrorUnderlying bao codec rejection.
Trait Implementations§
Source§impl Debug for RangeVerifyError
impl Debug for RangeVerifyError
Source§impl Display for RangeVerifyError
impl Display for RangeVerifyError
Source§impl Error for RangeVerifyError
impl Error for RangeVerifyError
Source§fn source(&self) -> Option<&(dyn Error + 'static)>
fn source(&self) -> Option<&(dyn Error + 'static)>
1.0.0 · Source§fn description(&self) -> &str
fn description(&self) -> &str
use the Display impl or to_string()
Auto Trait Implementations§
impl !RefUnwindSafe for RangeVerifyError
impl !UnwindSafe for RangeVerifyError
impl Freeze for RangeVerifyError
impl Send for RangeVerifyError
impl Sync for RangeVerifyError
impl Unpin for RangeVerifyError
impl UnsafeUnpin for RangeVerifyError
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
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
Source§impl<T> ToStringFallible for Twhere
T: Display,
impl<T> ToStringFallible for Twhere
T: Display,
Source§fn try_to_string(&self) -> Result<String, TryReserveError>
fn try_to_string(&self) -> Result<String, TryReserveError>
ToString::to_string, but without panic on OOM.