pub struct Frame {
pub fin: bool,
pub rsv: [bool; 3],
pub opcode: Opcode,
pub masked: bool,
pub mask: Option<[u8; 4]>,
pub payload: Bytes,
}Expand description
Represents a WebSocket frame according to RFC 6455
Fields§
§fin: boolIndicates if this is the final frame in a message
rsv: [bool; 3]Reserved bits (RSV1, RSV2, RSV3)
opcode: OpcodeFrame opcode
masked: boolIndicates if the payload is masked
mask: Option<[u8; 4]>Masking key (if present)
payload: BytesPayload data
Implementations§
Source§impl Frame
impl Frame
Sourcepub fn new(opcode: Opcode, payload: impl Into<Bytes>) -> Frame
pub fn new(opcode: Opcode, payload: impl Into<Bytes>) -> Frame
Create a new frame with the given opcode and payload
Sourcepub fn continuation(payload: impl Into<Bytes>) -> Frame
pub fn continuation(payload: impl Into<Bytes>) -> Frame
Create a continuation frame
Sourcepub fn close(code: Option<u16>, reason: Option<&str>) -> Frame
pub fn close(code: Option<u16>, reason: Option<&str>) -> Frame
Create a close frame with optional code and reason
Sourcepub fn parse(
buf: &mut BytesMut,
compression_enabled: bool,
) -> Result<Frame, Error>
pub fn parse( buf: &mut BytesMut, compression_enabled: bool, ) -> Result<Frame, Error>
Parse a frame from bytes
Sourcepub fn payload_len(&self) -> usize
pub fn payload_len(&self) -> usize
Get the payload length
Sourcepub fn is_control(&self) -> bool
pub fn is_control(&self) -> bool
Check if this is a control frame
Trait Implementations§
Auto Trait Implementations§
impl !Freeze for Frame
impl RefUnwindSafe for Frame
impl Send for Frame
impl Sync for Frame
impl Unpin for Frame
impl UnsafeUnpin for Frame
impl UnwindSafe for Frame
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<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