Skip to main content

Error

Enum Error 

Source
pub enum Error {
    PacketTooLarge(usize),
    FrameTooLarge(usize),
    FrameDecodingFailed(DecodeError),
    SendFailed(Error),
    RecvFailed(Error),
    Terminated,
    SessionReset,
    InvalidAttestation,
    HandshakeFailed(String),
    EncryptionFailed(String),
}
Expand description

Things that can go wrong in the wire transport.

Variants§

§

PacketTooLarge(usize)

A message exceeds the sending bound MAX_MESSAGE_SIZE. The size is the unencrypted message length. Refusal happens before sealing, leaving the session and its encryption sequence unchanged.

§

FrameTooLarge(usize)

An encoded frame exceeds MAX_FRAME_SIZE. On receive, the size counts bytes observed so far; the full frame may be larger. On send, the size is the required worst-case COBS encoding buffer. Receiving an oversized frame ends any active session; its remainder is discarded through the delimiter before another frame can be read.

§

FrameDecodingFailed(DecodeError)

A delimited frame is not valid COBS. It may have carried an encrypted message, so skipping it ends any active session. A reconnecting client discards malformed stale frames while waiting for its fresh reply.

§

SendFailed(Error)

Writing a frame failed, possibly while setting its deadline or flushing. std::io::ErrorKind::TimedOut means its output budget expired. The adapter may already have accepted part or all of the frame. The affected session or handshake cannot continue. This error does not close the byte stream.

§

RecvFailed(Error)

An adapter read or read deadline configuration failed. Idle read timeouts and interrupted reads are retried internally. Configuration failures are returned immediately, as is expiry of an overall handshake deadline. The client ends its session; the server leaves its binding in place so the caller can decide whether to retry or disconnect. Neither side closes the stream because of this error.

§

Terminated

Reading reached EOF or a sender’s transport owner was already released. Local closure also produces EOF once buffered frames have been consumed. This does not guarantee that a concurrent shutdown has finished.

§

SessionReset

The client received the server’s empty frame notification and ended its session. This does not close the stream. The client can reconnect to establish another session. Servers report resets through events instead.

§

InvalidAttestation

The presented CWT could not be decoded as hardware or emulator claims. This checks the token’s shape. The client’s verifier decides whether to trust a well-formed attestation.

§

HandshakeFailed(String)

A handshake message could not be constructed, decoded or authenticated, or the client’s verifier rejected the attestation. No new session is established by this attempt. The error does not close the byte stream.

§

EncryptionFailed(String)

A received packet could not be decrypted, or a send or receive no longer has a usable session. Invalid incoming packets end the session. Refusing an obsolete sender leaves any replacement session unaffected.

Trait Implementations§

Source§

impl Debug for Error

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Display for Error

Source§

fn fmt(&self, __formatter: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Error for Error

1.30.0 · Source§

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

👎Deprecated since 1.42.0:

use the Display impl or to_string()

1.0.0 · Source§

fn cause(&self) -> Option<&dyn Error>

👎Deprecated since 1.33.0:

replaced by Error::source, which can support downcasting

Source§

fn provide<'a>(&'a self, request: &mut Request<'a>)

🔬This is a nightly-only experimental API. (error_generic_member_access)
Provides type-based access to context intended for error reports. Read more
Source§

impl From<Error> for Error

Source§

fn from(error: Error) -> Self

Wraps a transport error in an Arc so pending promises can share it.

Auto Trait Implementations§

§

impl !RefUnwindSafe for Error

§

impl !UnwindSafe for Error

§

impl Freeze for Error

§

impl Send for Error

§

impl Sync for Error

§

impl Unpin for Error

§

impl UnsafeUnpin for Error

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToString for T
where T: Display + ?Sized,

Source§

fn to_string(&self) -> String

Converts the given value to a String. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more