pub enum FramingError {
UnsupportedFramingVersion {
got: u8,
expected: u8,
},
FrameTooLarge {
body_length: usize,
cap: usize,
},
UnexpectedEof {
context: &'static str,
},
Io(Error),
Decode(DecodeError),
}Expand description
Errors produced by read_frame/write_frame.
The error variants are deliberately distinct from io::Error so
callers can map them onto the broker’s wire-level error codes (e.g.
Refused{ERROR_VERSION_UNSUPPORTED} for an
FramingError::UnsupportedFramingVersion).
Variants§
UnsupportedFramingVersion
Peer’s framing byte did not match ENVELOPE_VERSION.
Per #228, the v1 broker writes Refused{ERROR_VERSION_UNSUPPORTED}
to the wire and closes the connection on this error.
Fields
expected: u8The framing byte we expected (always
ENVELOPE_VERSION in v1).
FrameTooLarge
Body length exceeds the configured per-frame cap.
The broker disconnects on this error per the wire-level commitments in #228. Callers should not attempt to drain the peer’s payload — the socket is no longer in a known state.
Fields
cap: usizeThe cap the caller passed to read_frame_with_cap.
UnexpectedEof
The underlying stream closed before the full frame arrived.
Io(Error)
Raw I/O error from the underlying stream.
Decode(DecodeError)
The frame body was not a valid prost Frame message.
Produced by the buffer-level
try_decode_framed
codec (#412); the stream-level read_frame returns raw body
bytes and leaves prost decoding to the caller.
Trait Implementations§
Source§impl Debug for FramingError
impl Debug for FramingError
Source§impl Display for FramingError
impl Display for FramingError
Source§impl Error for FramingError
impl Error for FramingError
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()
Source§impl From<DecodeError> for FramingError
impl From<DecodeError> for FramingError
Source§fn from(source: DecodeError) -> Self
fn from(source: DecodeError) -> Self
Source§impl From<Error> for FramingError
impl From<Error> for FramingError
Source§impl From<FramingError> for BackendHandoffWireError
impl From<FramingError> for BackendHandoffWireError
Source§fn from(source: FramingError) -> Self
fn from(source: FramingError) -> Self
Source§impl From<FramingError> for EndpointProbeServerError
impl From<FramingError> for EndpointProbeServerError
Source§fn from(source: FramingError) -> Self
fn from(source: FramingError) -> Self
Source§impl From<FramingError> for FrameClientError
impl From<FramingError> for FrameClientError
Source§fn from(source: FramingError) -> Self
fn from(source: FramingError) -> Self
Source§impl From<FramingError> for MuxError
impl From<FramingError> for MuxError
Source§fn from(source: FramingError) -> Self
fn from(source: FramingError) -> Self
Source§impl From<FramingError> for BrokerClientError
impl From<FramingError> for BrokerClientError
Source§fn from(source: FramingError) -> Self
fn from(source: FramingError) -> Self
Source§impl From<FramingError> for BrokerV2Error
impl From<FramingError> for BrokerV2Error
Source§fn from(source: FramingError) -> Self
fn from(source: FramingError) -> Self
Source§impl From<FramingError> for AdminConnectionError
impl From<FramingError> for AdminConnectionError
Source§fn from(source: FramingError) -> Self
fn from(source: FramingError) -> Self
Source§impl From<FramingError> for BrokerConnectionError
impl From<FramingError> for BrokerConnectionError
Source§fn from(source: FramingError) -> Self
fn from(source: FramingError) -> Self
Source§impl From<FramingError> for ControlSocketError
impl From<FramingError> for ControlSocketError
Source§fn from(source: FramingError) -> Self
fn from(source: FramingError) -> Self
Auto Trait Implementations§
impl !RefUnwindSafe for FramingError
impl !UnwindSafe for FramingError
impl Freeze for FramingError
impl Send for FramingError
impl Sync for FramingError
impl Unpin for FramingError
impl UnsafeUnpin for FramingError
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> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.Source§impl<T> DowncastSync for T
impl<T> DowncastSync for T
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 more