Struct SockAddrStorage
pub struct SockAddrStorage { /* private fields */ }Expand description
Rust version of the [sockaddr_storage] type.
This type is intended to be used with with direct calls to the getsockname syscall. See the
documentation of SockAddr::new for examples.
This crate defines its own sockaddr_storage type to avoid semver concerns with upgrading
windows-sys.
Implementations§
§impl SockAddrStorage
impl SockAddrStorage
pub fn zeroed() -> SockAddrStorage
pub fn zeroed() -> SockAddrStorage
Construct a new storage containing all zeros.
pub unsafe fn view_as<T>(&mut self) -> &mut T
pub unsafe fn view_as<T>(&mut self) -> &mut T
View this type as another type.
§Safety
The type T must be one of the sockaddr_* types defined by this platform.
§Examples
use libc::sockaddr_storage;
use socket2::{SockAddr, SockAddrStorage, socklen_t};
fn from_sockaddr_storage(recv_address: &sockaddr_storage) -> SockAddr {
let mut storage = SockAddrStorage::zeroed();
let libc_address = unsafe { storage.view_as::<sockaddr_storage>() };
*libc_address = *recv_address;
unsafe { SockAddr::new(storage, size_of::<sockaddr_storage>() as socklen_t) }
}Trait Implementations§
Auto Trait Implementations§
impl Freeze for SockAddrStorage
impl RefUnwindSafe for SockAddrStorage
impl Send for SockAddrStorage
impl Sync for SockAddrStorage
impl Unpin for SockAddrStorage
impl UnwindSafe for SockAddrStorage
Blanket Implementations§
§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
§impl<T> FutureExt for T
impl<T> FutureExt for T
§fn with_context(self, otel_cx: Context) -> WithContext<Self> ⓘ
fn with_context(self, otel_cx: Context) -> WithContext<Self> ⓘ
§fn with_current_context(self) -> WithContext<Self> ⓘ
fn with_current_context(self) -> WithContext<Self> ⓘ
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more§impl<T> Pointable for T
impl<T> Pointable for T
§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
§fn and<P, B, E>(self, other: P) -> And<T, P>
fn and<P, B, E>(self, other: P) -> And<T, P>
Create a new
Policy that returns Action::Follow only if self and other return
Action::Follow. Read more