SocketRef

Struct SocketRef 

Source
pub struct SocketRef<'a, T: 'a> { /* private fields */ }
Expand description

A smart pointer to a socket.

Allows the network stack to efficiently determine if the socket state was changed in any way.

Implementations§

Source§

impl<'a, T: 'a> Ref<'a, T>

Source

pub fn new(socket: &'a mut T) -> Self

Wrap a pointer to a socket to make a smart pointer.

Calling this function is only necessary if your code is using into_inner.

Source

pub fn into_inner(ref_: Self) -> &'a mut T

Unwrap a smart pointer to a socket.

The finalization code is not run. Prompt operation of the network stack depends on wrapping the returned pointer back and dropping it.

Calling this function is only necessary to achieve composability if you must map a &mut SocketRef<'a, XSocket> to a &'a mut XSocket (note the lifetimes); be sure to call new afterwards.

Trait Implementations§

Source§

impl<'a, T> Deref for Ref<'a, T>

Source§

type Target = T

The resulting type after dereferencing.
Source§

fn deref(&self) -> &Self::Target

Dereferences the value.
Source§

impl<'a, T> DerefMut for Ref<'a, T>

Source§

fn deref_mut(&mut self) -> &mut Self::Target

Mutably dereferences the value.

Auto Trait Implementations§

§

impl<'a, T> Freeze for Ref<'a, T>

§

impl<'a, T> RefUnwindSafe for Ref<'a, T>
where T: RefUnwindSafe,

§

impl<'a, T> Send for Ref<'a, T>
where T: Send,

§

impl<'a, T> Sync for Ref<'a, T>
where T: Sync,

§

impl<'a, T> Unpin for Ref<'a, T>

§

impl<'a, T> !UnwindSafe for Ref<'a, T>

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, 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<P, T> Receiver for P
where P: Deref<Target = T> + ?Sized, T: ?Sized,

Source§

type Target = T

🔬This is a nightly-only experimental API. (arbitrary_self_types)
The target type on which the method may be called.
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
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.