Struct io_lifetimes::BorrowedHandle
source · [−]#[repr(transparent)]pub struct BorrowedHandle<'handle> { /* private fields */ }
Expand description
A borrowed handle.
This has a lifetime parameter to tie it to the lifetime of something that owns the handle.
This uses repr(transparent)
and has the representation of a host handle,
so it can be used in FFI in places where a handle is passed as an argument,
it is not captured or consumed, and it is never null.
Note that it may have the value -1
, which in BorrowedHandle
always
represents a valid handle value, such as the current process handle, and
not INVALID_HANDLE_VALUE
, despite the two having the same value. See
here for the full story.
This type’s .to_owned()
implementation returns another BorrowedHandle
rather than an OwnedHandle
. It just makes a trivial copy of the raw
handle, which is then borrowed under the same lifetime.
Implementations
sourceimpl BorrowedHandle<'_>
impl BorrowedHandle<'_>
sourcepub fn try_clone_to_owned(&self) -> Result<OwnedHandle>
pub fn try_clone_to_owned(&self) -> Result<OwnedHandle>
Creates a new OwnedHandle
instance that shares the same underlying
object as the existing BorrowedHandle
instance.
sourceimpl BorrowedHandle<'_>
impl BorrowedHandle<'_>
sourcepub const unsafe fn borrow_raw(handle: RawHandle) -> Self
pub const unsafe fn borrow_raw(handle: RawHandle) -> Self
Return a BorrowedHandle
holding the given raw handle.
Safety
The resource pointed to by handle
must be a valid open handle, it
must remain open for the duration of the returned BorrowedHandle
.
Note that it may have the value INVALID_HANDLE_VALUE
(-1), which is
sometimes a valid handle value. See here for the full story.
And, it may have the value NULL
(0), which can occur when consoles are
detached from processes, or when windows_subsystem
is used.
Trait Implementations
sourceimpl AsHandle for BorrowedHandle<'_>
impl AsHandle for BorrowedHandle<'_>
sourcefn as_handle(&self) -> BorrowedHandle<'_>
fn as_handle(&self) -> BorrowedHandle<'_>
sourceimpl AsRawHandle for BorrowedHandle<'_>
impl AsRawHandle for BorrowedHandle<'_>
sourcefn as_raw_handle(&self) -> RawHandle
fn as_raw_handle(&self) -> RawHandle
sourceimpl<'handle> Clone for BorrowedHandle<'handle>
impl<'handle> Clone for BorrowedHandle<'handle>
sourcefn clone(&self) -> BorrowedHandle<'handle>
fn clone(&self) -> BorrowedHandle<'handle>
1.0.0 · sourceconst fn clone_from(&mut self, source: &Self)
const fn clone_from(&mut self, source: &Self)
source
. Read more