#[repr(transparent)]pub struct BorrowedSocket<'socket> {
socket: RawSocket,
_phantom: PhantomData<&'socket OwnedSocket>,
}
Expand description
A borrowed socket.
This has a lifetime parameter to tie it to the lifetime of something that owns the socket.
This uses repr(transparent)
and has the representation of a host socket,
so it can be used in FFI in places where a socket is passed as an argument,
it is not captured or consumed, and it never has the value
INVALID_SOCKET
.
This type’s .to_owned()
implementation returns another BorrowedSocket
rather than an OwnedSocket
. It just makes a trivial copy of the raw
socket, which is then borrowed under the same lifetime.
Fields§
§socket: RawSocket
§_phantom: PhantomData<&'socket OwnedSocket>
Implementations§
source§impl BorrowedSocket<'_>
impl BorrowedSocket<'_>
const: 1.63.0 · sourcepub const unsafe fn borrow_raw(socket: RawSocket) -> Self
pub const unsafe fn borrow_raw(socket: RawSocket) -> Self
Return a BorrowedSocket
holding the given raw socket.
Safety
The resource pointed to by raw
must remain open for the duration of
the returned BorrowedSocket
, and it must not have the value
INVALID_SOCKET
.
source§impl BorrowedSocket<'_>
impl BorrowedSocket<'_>
sourcepub fn try_clone_to_owned(&self) -> Result<OwnedSocket>
pub fn try_clone_to_owned(&self) -> Result<OwnedSocket>
Creates a new OwnedSocket
instance that shares the same underlying
object as the existing BorrowedSocket
instance.
Trait Implementations§
source§impl AsRawSocket for BorrowedSocket<'_>
impl AsRawSocket for BorrowedSocket<'_>
source§fn as_raw_socket(&self) -> RawSocket
fn as_raw_socket(&self) -> RawSocket
source§impl AsSocket for BorrowedSocket<'_>
impl AsSocket for BorrowedSocket<'_>
source§fn as_socket(&self) -> BorrowedSocket<'_>
fn as_socket(&self) -> BorrowedSocket<'_>
source§impl<'socket> Clone for BorrowedSocket<'socket>
impl<'socket> Clone for BorrowedSocket<'socket>
source§fn clone(&self) -> BorrowedSocket<'socket>
fn clone(&self) -> BorrowedSocket<'socket>
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read more