Struct NullableHandle
pub struct NullableHandle(/* private fields */);Expand description
An object representing a Zircon handle.
Internally, it is represented as a 32-bit integer, but this wrapper enforces
strict ownership semantics. The Drop implementation closes the handle.
This type represents the most general reference to a kernel object, and can be interconverted to and from more specific types. Those conversions are not enforced in the type system; attempting to use them will result in errors returned by the kernel. These conversions don’t change the underlying representation, but do change the type and thus what operations are available.
Implementations§
§impl NullableHandle
impl NullableHandle
pub const fn invalid() -> NullableHandle
pub const fn invalid() -> NullableHandle
Initialize a handle backed by ZX_HANDLE_INVALID, the only safe non-handle.
pub const unsafe fn from_raw(raw: u32) -> NullableHandle
pub const unsafe fn from_raw(raw: u32) -> NullableHandle
If a raw handle is obtained from some other source, this method converts it into a type-safe owned handle.
§Safety
raw must either be a valid handle (i.e. not dangling), or
ZX_HANDLE_INVALID. If raw is a valid handle, then either:
rawmay be closed manually and the returnedNullableHandlemust not be dropped.- Or
rawmust not be closed until the returnedNullableHandleis dropped, at which time it will closeraw.
pub fn is_invalid(&self) -> bool
pub fn replace(self, rights: Rights) -> Result<NullableHandle, Status>
Trait Implementations§
§impl AsHandleRef for NullableHandle
impl AsHandleRef for NullableHandle
§fn as_handle_ref(&self) -> Unowned<'_, NullableHandle>
fn as_handle_ref(&self) -> Unowned<'_, NullableHandle>
object_wait_many.§fn raw_handle(&self) -> u32
fn raw_handle(&self) -> u32
§fn signal_handle(
&self,
clear_mask: Signals,
set_mask: Signals,
) -> Result<(), Status>
fn signal_handle( &self, clear_mask: Signals, set_mask: Signals, ) -> Result<(), Status>
§fn wait_handle(
&self,
signals: Signals,
deadline: Instant<MonotonicTimeline>,
) -> WaitResult
fn wait_handle( &self, signals: Signals, deadline: Instant<MonotonicTimeline>, ) -> WaitResult
§fn wait_async_handle(
&self,
port: &Port,
key: u64,
signals: Signals,
options: WaitAsyncOpts,
) -> Result<(), Status>
fn wait_async_handle( &self, port: &Port, key: u64, signals: Signals, options: WaitAsyncOpts, ) -> Result<(), Status>
§fn get_name(&self) -> Result<Name, Status>
fn get_name(&self) -> Result<Name, Status>
§fn set_name(&self, name: &Name) -> Result<(), Status>
fn set_name(&self, name: &Name) -> Result<(), Status>
§fn basic_info(&self) -> Result<HandleBasicInfo, Status>
fn basic_info(&self) -> Result<HandleBasicInfo, Status>
§fn count_info(&self) -> Result<HandleCountInfo, Status>
fn count_info(&self) -> Result<HandleCountInfo, Status>
Source§impl CodecHandle for NullableHandle
impl CodecHandle for NullableHandle
§impl Debug for NullableHandle
impl Debug for NullableHandle
Source§impl From<Bti> for NullableHandle
impl From<Bti> for NullableHandle
Source§fn from(x: Bti) -> NullableHandle
fn from(x: Bti) -> NullableHandle
§impl From<Bti> for NullableHandle
impl From<Bti> for NullableHandle
§fn from(x: Bti) -> NullableHandle
fn from(x: Bti) -> NullableHandle
§impl From<Channel> for NullableHandle
impl From<Channel> for NullableHandle
§fn from(x: Channel) -> NullableHandle
fn from(x: Channel) -> NullableHandle
Source§impl<T> From<ClientEnd<T>> for NullableHandle
impl<T> From<ClientEnd<T>> for NullableHandle
Source§fn from(client: ClientEnd<T>) -> NullableHandle
fn from(client: ClientEnd<T>) -> NullableHandle
§impl<Reference, Output> From<Clock<Reference, Output>> for NullableHandlewhere
Reference: Timeline,
Output: Timeline,
impl<Reference, Output> From<Clock<Reference, Output>> for NullableHandlewhere
Reference: Timeline,
Output: Timeline,
§fn from(x: Clock<Reference, Output>) -> NullableHandle
fn from(x: Clock<Reference, Output>) -> NullableHandle
§impl From<Counter> for NullableHandle
impl From<Counter> for NullableHandle
§fn from(x: Counter) -> NullableHandle
fn from(x: Counter) -> NullableHandle
§impl From<DebugLog> for NullableHandle
impl From<DebugLog> for NullableHandle
§fn from(x: DebugLog) -> NullableHandle
fn from(x: DebugLog) -> NullableHandle
§impl From<Event> for NullableHandle
impl From<Event> for NullableHandle
§fn from(x: Event) -> NullableHandle
fn from(x: Event) -> NullableHandle
§impl From<EventPair> for NullableHandle
impl From<EventPair> for NullableHandle
§fn from(x: EventPair) -> NullableHandle
fn from(x: EventPair) -> NullableHandle
Source§impl From<Exception> for NullableHandle
impl From<Exception> for NullableHandle
Source§fn from(x: Exception) -> NullableHandle
fn from(x: Exception) -> NullableHandle
§impl From<Exception> for NullableHandle
impl From<Exception> for NullableHandle
§fn from(x: Exception) -> NullableHandle
fn from(x: Exception) -> NullableHandle
§impl<R, W> From<Fifo<R, W>> for NullableHandle
impl<R, W> From<Fifo<R, W>> for NullableHandle
§fn from(x: Fifo<R, W>) -> NullableHandle
fn from(x: Fifo<R, W>) -> NullableHandle
§impl From<Guest> for NullableHandle
impl From<Guest> for NullableHandle
§fn from(x: Guest) -> NullableHandle
fn from(x: Guest) -> NullableHandle
§impl<K, T> From<Interrupt<K, T>> for NullableHandlewhere
K: InterruptKind,
T: Timeline,
impl<K, T> From<Interrupt<K, T>> for NullableHandlewhere
K: InterruptKind,
T: Timeline,
§fn from(x: Interrupt<K, T>) -> NullableHandle
fn from(x: Interrupt<K, T>) -> NullableHandle
§impl From<Iob> for NullableHandle
impl From<Iob> for NullableHandle
§fn from(x: Iob) -> NullableHandle
fn from(x: Iob) -> NullableHandle
§fn from(x: IobSharedRegion) -> NullableHandle
fn from(x: IobSharedRegion) -> NullableHandle
Source§impl From<Iommu> for NullableHandle
impl From<Iommu> for NullableHandle
Source§fn from(x: Iommu) -> NullableHandle
fn from(x: Iommu) -> NullableHandle
§impl From<Iommu> for NullableHandle
impl From<Iommu> for NullableHandle
§fn from(x: Iommu) -> NullableHandle
fn from(x: Iommu) -> NullableHandle
§impl From<Job> for NullableHandle
impl From<Job> for NullableHandle
§fn from(x: Job) -> NullableHandle
fn from(x: Job) -> NullableHandle
Source§impl From<Msi> for NullableHandle
impl From<Msi> for NullableHandle
Source§fn from(x: Msi) -> NullableHandle
fn from(x: Msi) -> NullableHandle
§impl From<NullableHandle> for Channel
impl From<NullableHandle> for Channel
§fn from(handle: NullableHandle) -> Channel
fn from(handle: NullableHandle) -> Channel
Source§impl From<Pager> for NullableHandle
impl From<Pager> for NullableHandle
Source§fn from(x: Pager) -> NullableHandle
fn from(x: Pager) -> NullableHandle
§impl From<Pager> for NullableHandle
impl From<Pager> for NullableHandle
§fn from(x: Pager) -> NullableHandle
fn from(x: Pager) -> NullableHandle
Source§impl From<PciDevice> for NullableHandle
impl From<PciDevice> for NullableHandle
Source§fn from(x: PciDevice) -> NullableHandle
fn from(x: PciDevice) -> NullableHandle
Source§impl From<Pmt> for NullableHandle
impl From<Pmt> for NullableHandle
Source§fn from(x: Pmt) -> NullableHandle
fn from(x: Pmt) -> NullableHandle
§impl From<Pmt> for NullableHandle
impl From<Pmt> for NullableHandle
§fn from(x: Pmt) -> NullableHandle
fn from(x: Pmt) -> NullableHandle
§impl From<Port> for NullableHandle
impl From<Port> for NullableHandle
§fn from(x: Port) -> NullableHandle
fn from(x: Port) -> NullableHandle
§impl From<Process> for NullableHandle
impl From<Process> for NullableHandle
§fn from(x: Process) -> NullableHandle
fn from(x: Process) -> NullableHandle
§impl From<Profile> for NullableHandle
impl From<Profile> for NullableHandle
§fn from(x: Profile) -> NullableHandle
fn from(x: Profile) -> NullableHandle
§impl From<Resource> for NullableHandle
impl From<Resource> for NullableHandle
§fn from(x: Resource) -> NullableHandle
fn from(x: Resource) -> NullableHandle
Source§impl<T> From<ServerEnd<T>> for NullableHandle
impl<T> From<ServerEnd<T>> for NullableHandle
Source§fn from(server: ServerEnd<T>) -> NullableHandle
fn from(server: ServerEnd<T>) -> NullableHandle
§impl From<Socket> for NullableHandle
impl From<Socket> for NullableHandle
§fn from(x: Socket) -> NullableHandle
fn from(x: Socket) -> NullableHandle
§impl From<Stream> for NullableHandle
impl From<Stream> for NullableHandle
§fn from(x: Stream) -> NullableHandle
fn from(x: Stream) -> NullableHandle
Source§impl From<SuspendToken> for NullableHandle
impl From<SuspendToken> for NullableHandle
Source§fn from(x: SuspendToken) -> NullableHandle
fn from(x: SuspendToken) -> NullableHandle
§impl From<Thread> for NullableHandle
impl From<Thread> for NullableHandle
§fn from(x: Thread) -> NullableHandle
fn from(x: Thread) -> NullableHandle
§impl<T> From<Timer<T>> for NullableHandlewhere
T: Timeline,
impl<T> From<Timer<T>> for NullableHandlewhere
T: Timeline,
§fn from(x: Timer<T>) -> NullableHandle
fn from(x: Timer<T>) -> NullableHandle
§impl From<Vcpu> for NullableHandle
impl From<Vcpu> for NullableHandle
§fn from(x: Vcpu) -> NullableHandle
fn from(x: Vcpu) -> NullableHandle
§impl From<Vmar> for NullableHandle
impl From<Vmar> for NullableHandle
§fn from(x: Vmar) -> NullableHandle
fn from(x: Vmar) -> NullableHandle
§impl From<Vmo> for NullableHandle
impl From<Vmo> for NullableHandle
§fn from(x: Vmo) -> NullableHandle
fn from(x: Vmo) -> NullableHandle
§impl HandleBased for NullableHandle
impl HandleBased for NullableHandle
§fn duplicate_handle(&self, rights: Rights) -> Result<Self, Status>
fn duplicate_handle(&self, rights: Rights) -> Result<Self, Status>
§fn replace_handle(self, rights: Rights) -> Result<Self, Status>
fn replace_handle(self, rights: Rights) -> Result<Self, Status>
§fn into_handle(self) -> NullableHandle
fn into_handle(self) -> NullableHandle
§fn from_handle(handle: NullableHandle) -> Self
fn from_handle(handle: NullableHandle) -> Self
§fn into_handle_based<H>(self) -> Hwhere
H: HandleBased,
fn into_handle_based<H>(self) -> Hwhere
H: HandleBased,
§fn from_handle_based<H>(h: H) -> Selfwhere
H: HandleBased,
fn from_handle_based<H>(h: H) -> Selfwhere
H: HandleBased,
fn is_invalid_handle(&self) -> bool
Source§impl HandleFor<DefaultFuchsiaResourceDialect> for NullableHandle
impl HandleFor<DefaultFuchsiaResourceDialect> for NullableHandle
Source§type HandleInfo = HandleInfo
type HandleInfo = HandleInfo
Source§fn invalid() -> NullableHandle
fn invalid() -> NullableHandle
Handle used as a place filler when
we remove handles from an array.