pub struct HandshakeJoiner { /* private fields */ }
Expand description

This works to reconstruct TLS handshake messages from individual TLS messages. It’s guaranteed that TLS messages output from this layer contain precisely one handshake payload.

Implementations§

source§

impl HandshakeJoiner

source

pub fn new() -> Self

Make a new HandshakeJoiner.

source

pub fn push(&mut self, msg: PlainMessage) -> Result<bool, JoinerError>

Take the message, and join/split it as needed.

Returns Err(JoinerError::Unwanted(msg)) if msg’s type is not ContentType::Handshake or JoinerError::Decode if a received payload has an advertised size larger than we accept.

Otherwise, yields a bool to indicate whether the handshake is “aligned”: if the buffer currently only contains complete payloads (that is, no incomplete message in the suffix).

source

pub fn pop(&mut self) -> Result<Option<Message>, JoinerError>

Parse the first received message out of the buffer.

Returns Ok(None) if we don’t have a complete message in the buffer, or Err if we fail to parse the first message in the buffer.

Auto Trait Implementations§

Blanket Implementations§

source§

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

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

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

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

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

source§

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

Mutably borrows from an owned value. 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 Twhere 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, U> TryFrom<U> for Twhere U: Into<T>,

§

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 Twhere U: TryFrom<T>,

§

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.