Struct SocketAddrBuf

Source
pub(crate) struct SocketAddrBuf {
    pub(crate) len: socklen_t,
    pub(crate) storage: MaybeUninit<SocketAddrStorage>,
}
Expand description

Temporary buffer for creating a SocketAddrAny from a syscall that writes to a sockaddr_t and socklen_t

Unlike SocketAddrAny, this does not maintain the invariant that len bytes are initialized.

Fields§

§len: socklen_t§storage: MaybeUninit<SocketAddrStorage>

Implementations§

Source§

impl SocketAddrBuf

Source

pub(crate) const fn new() -> Self

Source

pub(crate) unsafe fn into_any(self) -> SocketAddrAny

Convert the buffer into SocketAddrAny.

§Safety

A valid address must have been written into self.storage and its length written into self.len.

Source

pub(crate) unsafe fn into_any_option(self) -> Option<SocketAddrAny>

Convert the buffer into Option<SocketAddrAny>.

This returns None if len is zero or other platform-specific conditions define the address as empty.

§Safety

Either valid address must have been written into self.storage and its length written into self.len, or self.len must have been set to 0.

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, 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.