Skip to main content

Codec

Trait Codec 

Source
pub trait Codec<W>: Send + Sync {
    type Message: Send + Sync;
    type Error;

    // Required methods
    fn encode(
        &self,
        src: &Self::Message,
        dst: &mut W,
    ) -> Result<usize, Self::Error>;
    fn decode(
        &self,
        src: &mut W,
    ) -> Result<Option<(usize, Self::Message)>, Self::Error>;
}
Expand description

Encodes and decodes messages from a wire-level type.

W is the wire type (e.g. ByteBuffer, ws::Message). Message is the application-level type.

Required Associated Types§

Required Methods§

Source

fn encode(&self, src: &Self::Message, dst: &mut W) -> Result<usize, Self::Error>

Encode a message into the wire buffer.

Source

fn decode( &self, src: &mut W, ) -> Result<Option<(usize, Self::Message)>, Self::Error>

Decode a message from the wire buffer. Returns Some((bytes_consumed, message)) on success, None if more data is needed.

Implementors§

Source§

impl Codec<Message> for JsonCodec

Available on crate feature ws only.

WS codec for JSON values over WebSocket text messages.

Source§

impl Codec<Buffer> for BytesCodec

Source§

impl Codec<Buffer> for LengthCodec

Source§

impl Codec<Buffer> for JsonCodec