Struct HandshakeMachine

struct HandshakeMachine<Stream> { ... }

A generic handshake state machine.

Implementations

impl<Stream> HandshakeMachine<Stream>

fn start_read(stream: Stream) -> Self

Start reading data from the peer.

fn start_write<D: Into<Vec<u8>>>(stream: Stream, data: D) -> Self

Start writing data to the peer.

fn get_ref(self: &Self) -> &Stream

Returns a shared reference to the inner stream.

fn get_mut(self: &mut Self) -> &mut Stream

Returns a mutable reference to the inner stream.

impl<Stream: Read + Write> HandshakeMachine<Stream>

fn single_round<Obj: TryParse>(self: Self) -> Result<RoundResult<Obj, Stream>>

Perform a single handshake round.

impl<Stream> Freeze for HandshakeMachine<Stream>

impl<Stream> RefUnwindSafe for HandshakeMachine<Stream>

impl<Stream> Send for HandshakeMachine<Stream>

impl<Stream> Sync for HandshakeMachine<Stream>

impl<Stream> Unpin for HandshakeMachine<Stream>

impl<Stream> UnsafeUnpin for HandshakeMachine<Stream>

impl<Stream> UnwindSafe for HandshakeMachine<Stream>

impl<Stream: $crate::fmt::Debug> Debug for HandshakeMachine<Stream>

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

impl<T> Any for HandshakeMachine<Stream>

fn type_id(self: &Self) -> TypeId

impl<T> Borrow for HandshakeMachine<Stream>

fn borrow(self: &Self) -> &T

impl<T> BorrowMut for HandshakeMachine<Stream>

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

impl<T> From for HandshakeMachine<Stream>

fn from(t: T) -> T

Returns the argument unchanged.

impl<T> Same for HandshakeMachine<Stream>

impl<T, U> Into for HandshakeMachine<Stream>

fn into(self: Self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of [From]<T> for U chooses to do.

impl<T, U> TryFrom for HandshakeMachine<Stream>

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

impl<T, U> TryInto for HandshakeMachine<Stream>

fn try_into(self: Self) -> Result<U, <U as TryFrom<T>>::Error>

impl<V, T> VZip for HandshakeMachine<Stream>

fn vzip(self: Self) -> V