Skip to main content

ProtocolError

Enum ProtocolError 

Source
pub enum ProtocolError {
Show 14 variants InvalidOpcode(u8), ReservedBitsSet { bits: u8, }, MaskedFrameFromServer, UnmaskedFrameFromClient, PayloadTooLarge { size: u64, max: u64, }, ControlFrameTooLarge { size: u64, }, FragmentedControlFrame, InvalidCloseCode(u16), InvalidUtf8InCloseReason, CloseFrameTooShort, ContinuationWithoutStart, NewMessageDuringAssembly, InvalidUtf8, MessageTooLarge { accumulated: usize, max: usize, },
}
Expand description

Protocol error from WebSocket frame decoding.

Each variant is a specific RFC 6455 violation. No catch-all.

Variants§

§

InvalidOpcode(u8)

Frame header contains an unrecognized opcode.

§

ReservedBitsSet

Reserved bits (RSV1-3) are set without a negotiated extension.

Fields

§bits: u8

The RSV bits that were set (bits 4-6 of byte 0).

§

MaskedFrameFromServer

Server sent a masked frame (RFC 6455 §5.1: server MUST NOT mask).

§

UnmaskedFrameFromClient

Client sent an unmasked frame (RFC 6455 §5.1: client MUST mask).

§

PayloadTooLarge

Frame payload exceeds the configured maximum frame size.

Fields

§size: u64

Declared payload size.

§max: u64

Configured maximum.

§

ControlFrameTooLarge

Control frame payload exceeds 125 bytes (RFC 6455 §5.5).

Fields

§size: u64

Declared payload size.

§

FragmentedControlFrame

Control frame is fragmented (RFC 6455 §5.5: MUST NOT be fragmented).

§

InvalidCloseCode(u16)

Close frame has invalid status code.

§

InvalidUtf8InCloseReason

Close frame reason is not valid UTF-8.

§

CloseFrameTooShort

Close frame payload is 1 byte (must be 0 or >= 2).

§

ContinuationWithoutStart

Received a continuation frame with no preceding start frame.

§

NewMessageDuringAssembly

Received a new data frame (Text/Binary) while assembling fragments.

§

InvalidUtf8

Text message payload is not valid UTF-8.

§

MessageTooLarge

Assembled message exceeds the configured maximum message size.

Fields

§accumulated: usize

Accumulated size so far.

§max: usize

Configured maximum.

Trait Implementations§

Source§

impl Clone for ProtocolError

Source§

fn clone(&self) -> ProtocolError

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for ProtocolError

Source§

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

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

impl Display for ProtocolError

Source§

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

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

impl Error for ProtocolError

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<ProtocolError> for Error

Source§

fn from(e: ProtocolError) -> Self

Converts to this type from the input type.
Source§

impl PartialEq for ProtocolError

Source§

fn eq(&self, other: &ProtocolError) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Eq for ProtocolError

Source§

impl StructuralPartialEq for ProtocolError

Auto Trait Implementations§

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<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

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> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
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 = Infallible

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

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

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