Struct AsyncSocket

Source
pub struct AsyncSocket { /* private fields */ }
Expand description

A wrapper type around Socket to enable async-await send and receive operations.

This type allows for getting a single future (send or receive) from a socket at a time. This is useful for raw sockets and scalability protocols which cannot leverage Context, and thus need to perform send and receive operations on an owned socket directly.

If you have set up your socket such that it can be used with contexts, it is instead recommended to use AsyncContext, which only needs to borrow the underlying socket. Contexts are more useful for concurrent operations where of futures for each independent operation on a socket.

Implementations§

Source§

impl AsyncSocket

Source

pub async fn send<M>( &mut self, msg: M, timeout: Option<Duration>, ) -> Result<(), (Message, Error)>
where M: Into<Message>,

Sends a Message to the socket asynchronously.

§Errors
  • IncorrectState if the internal Aio is already running an operation, or the socket cannot send messages in its current state.
  • MessageTooLarge: The message is too large.
  • NotSupported: The protocol does not support sending messages.
  • OutOfMemory: Insufficient memory available.
  • TimedOut: The operation timed out.
Source

pub async fn receive( &mut self, timeout: Option<Duration>, ) -> Result<Message, Error>

Receives a Message from the socket asynchronously.

§Errors
  • IncorrectState if the internal Aio is already running an operation, or the socket cannot send messages in its current state.
  • MessageTooLarge: The message is too large.
  • NotSupported: The protocol does not support sending messages.
  • OutOfMemory: Insufficient memory available.
  • TimedOut: The operation timed out.
Source

pub fn into_inner(self) -> Socket

Grabs the inner Socket.

Trait Implementations§

Source§

impl Debug for AsyncSocket

Source§

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

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

impl TryFrom<Socket> for AsyncSocket

Source§

type Error = Error

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

fn try_from(socket: Socket) -> Result<Self, Self::Error>

Performs the conversion.

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

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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, 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<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more