#[non_exhaustive]pub enum ProtocolViolation {
EmptyRequest,
AddressOverflow(InputRequest),
NoProgress(InputRequest),
NeedPastEnd {
request: InputRequest,
total: u64,
},
}Expand description
A decoder broke the IncrementalDecode
protocol. Drivers report this instead of looping.
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
Non-exhaustive enums could have additional variants added in future. Therefore, when matching against variants of non-exhaustive enums, an extra wildcard arm must be added to account for any future variants.
EmptyRequest
Need with no requests.
AddressOverflow(InputRequest)
A request’s offset plus length cannot be represented by the protocol.
NoProgress(InputRequest)
The input satisfied one of the decoder’s requests, yet it took nothing and asked again.
NeedPastEnd
The decoder asked for bytes past the end it was told about, instead of reporting truncated input.
Trait Implementations§
Source§impl Clone for ProtocolViolation
impl Clone for ProtocolViolation
Source§fn clone(&self) -> ProtocolViolation
fn clone(&self) -> ProtocolViolation
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 ProtocolViolation
impl Debug for ProtocolViolation
Source§impl Display for ProtocolViolation
impl Display for ProtocolViolation
impl Eq for ProtocolViolation
Source§impl Error for ProtocolViolation
impl Error for ProtocolViolation
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 ProtocolViolation
impl PartialEq for ProtocolViolation
impl StructuralPartialEq for ProtocolViolation
Auto Trait Implementations§
impl Freeze for ProtocolViolation
impl RefUnwindSafe for ProtocolViolation
impl Send for ProtocolViolation
impl Sync for ProtocolViolation
impl Unpin for ProtocolViolation
impl UnsafeUnpin for ProtocolViolation
impl UnwindSafe for ProtocolViolation
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<E> CodecErrorExt for Ewhere
E: Error + 'static,
impl<E> CodecErrorExt for Ewhere
E: Error + 'static,
Source§fn unsupported_operation(&self) -> Option<&UnsupportedOperation>
fn unsupported_operation(&self) -> Option<&UnsupportedOperation>
Find an
UnsupportedOperation in this error’s cause chain.Source§fn limit_exceeded(&self) -> Option<&LimitExceeded>
fn limit_exceeded(&self) -> Option<&LimitExceeded>
Find a
LimitExceeded in this error’s cause chain.Source§fn codec_error(&self) -> Option<&CodecError>
fn codec_error(&self) -> Option<&CodecError>
Recover the shared
CodecError envelope from this error’s chain — after
any erasure (Box<dyn Error>, anyhow::Error, a mapped wrapper) — by
downcasting to the concrete At<CodecError> (or a bare CodecError),
tolerating a single Box layer (Box<At<CodecError>> etc., so a codec may
use an 8-byte boxed type Error). It gives the
category and the originating
codec name, so a consumer can tell codecs apart
without naming any codec-specific type. Read moreSource§fn find_cause<T>(&self) -> Option<&T>where
T: Error + 'static,
fn find_cause<T>(&self) -> Option<&T>where
T: Error + 'static,
Find a cause of arbitrary type
T in this error’s cause chain.Source§fn error_category(&self) -> Option<ErrorCategory>
fn error_category(&self) -> Option<ErrorCategory>
Shortcut for
codec_error().map(CodecError::category) — the
coarse axis app/lib code routes on.