pub enum SparseError {
TooManyLeaves {
actual: u64,
},
TooManyFilterPaths {
actual: usize,
},
UnsortedTree,
}Expand description
Errors raised by build_sparse and verify_sparse. This is
kept small — the transport layer will wrap these in its own
error type once it lands.
Variants§
TooManyLeaves
Source tree has more entries than MAX_LEAVES. The bitmap
would still build, but we refuse out of caution: an attacker
shouldn’t be able to force a multi-GB allocation on the
verifier by claiming a huge leaf_count.
TooManyFilterPaths
Filter has more entries than MAX_FILTER_PATHS.
UnsortedTree
Source tree’s entries are not in strict lex order. Our leaf indices are defined by that order, so we refuse to build a manifest from a tree that violates the invariant.
Trait Implementations§
Source§impl Clone for SparseError
impl Clone for SparseError
Source§fn clone(&self) -> SparseError
fn clone(&self) -> SparseError
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · 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 SparseError
impl Debug for SparseError
Source§impl Display for SparseError
impl Display for SparseError
impl Eq for SparseError
Source§impl Error for SparseError
impl Error for SparseError
1.30.0 · Source§fn source(&self) -> Option<&(dyn Error + 'static)>
fn source(&self) -> Option<&(dyn Error + 'static)>
Returns the lower-level source of this error, if any. Read more
1.0.0 · Source§fn description(&self) -> &str
fn description(&self) -> &str
👎Deprecated since 1.42.0:
use the Display impl or to_string()
Source§impl PartialEq for SparseError
impl PartialEq for SparseError
impl StructuralPartialEq for SparseError
Auto Trait Implementations§
impl Freeze for SparseError
impl RefUnwindSafe for SparseError
impl Send for SparseError
impl Sync for SparseError
impl Unpin for SparseError
impl UnsafeUnpin for SparseError
impl UnwindSafe for SparseError
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key and return true if they are equal.Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<T> FutureExt for T
impl<T> FutureExt for T
Source§fn with_context(self, otel_cx: Context) -> WithContext<Self>
fn with_context(self, otel_cx: Context) -> WithContext<Self>
Source§fn with_current_context(self) -> WithContext<Self>
fn with_current_context(self) -> WithContext<Self>
impl<A, B, T> HttpServerConnExec<A, B> for Twhere
B: Body,
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>
Converts
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>
Converts
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 more