pub trait AsRawDescriptor {
// Required method
fn as_raw_descriptor(&self) -> i64;
}
Expand description
Trait for returning the underlying raw descriptor, without giving up ownership of the descriptor.
Required Methods§
Sourcefn as_raw_descriptor(&self) -> i64
fn as_raw_descriptor(&self) -> i64
Returns the underlying raw descriptor.
Since the descriptor is still owned by the provider, callers should not assume that it will remain open for longer than the immediate call of this method. In particular, it is a dangerous practice to store the result of this method for future use: instead, it should be used to e.g. obtain a raw descriptor that is immediately passed to a system call.
If you need to use the descriptor for a longer time (and particularly if you cannot reliably
track the lifetime of the providing object), you should probably consider using
SafeDescriptor
(possibly along with IntoRawDescriptor
) to get full ownership
over a descriptor pointing to the same resource.
Trait Implementations§
Source§impl TryFrom<&dyn AsRawDescriptor> for SafeDescriptor
impl TryFrom<&dyn AsRawDescriptor> for SafeDescriptor
Source§fn try_from(rd: &dyn AsRawDescriptor) -> Result<Self, Self::Error>
fn try_from(rd: &dyn AsRawDescriptor) -> Result<Self, Self::Error>
Clones the underlying descriptor (handle), internally creating a new descriptor.
WARNING: Windows does NOT support cloning/duplicating all types of handles. DO NOT use this function on IO completion ports, sockets, or pseudo-handles (except those from GetCurrentProcess or GetCurrentThread). See https://docs.microsoft.com/en-us/windows/win32/api/handleapi/nf-handleapi-duplicatehandle for further details.
TODO(b/191800567): this API has sharp edges on Windows. We should evaluate making some adjustments to smooth those edges.