Type Alias Token

Source
pub type Token = Handle;
Expand description

The type to identify a connection to a node. It represents a capability: a reference to a node with associated rights.

Aliased Type§

struct Token(/* private fields */);

Implementations

§

impl Handle

pub const fn invalid() -> Handle

Initialize a handle backed by ZX_HANDLE_INVALID, the only safe non-handle.

pub const unsafe fn from_raw(raw: u32) -> Handle

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:

  • raw may be closed manually and the returned Handle must not be dropped.
  • Or raw must not be closed until the returned Handle is dropped, at which time it will close raw.

pub fn is_invalid(&self) -> bool

pub fn replace(self, rights: Rights) -> Result<Handle, Status>

Trait Implementations

§

impl AsHandleRef for Handle

§

fn as_handle_ref(&self) -> Unowned<'_, Handle>

Get a reference to the handle. One important use of such a reference is for object_wait_many.
§

fn raw_handle(&self) -> u32

Interpret the reference as a raw handle (an integer type). Two distinct handles will have different raw values (so it can perhaps be used as a key in a data structure).
§

fn signal_handle( &self, clear_mask: Signals, set_mask: Signals, ) -> Result<(), Status>

Set and clear userspace-accessible signal bits on an object. Wraps the zx_object_signal syscall.
§

fn wait_handle( &self, signals: Signals, deadline: Instant<MonotonicTimeline>, ) -> WaitResult

Waits on a handle. Wraps the zx_object_wait_one syscall.
§

fn wait_async_handle( &self, port: &Port, key: u64, signals: Signals, options: WaitAsyncOpts, ) -> Result<(), Status>

Causes packet delivery on the given port when the object changes state and matches signals. zx_object_wait_async syscall.
§

fn get_name(&self) -> Result<Name, Status>

Get the [Property::NAME] property for this object. Read more
§

fn set_name(&self, name: &Name) -> Result<(), Status>

Set the [Property::NAME] property for this object. Read more
§

fn basic_info(&self) -> Result<HandleBasicInfo, Status>

Wraps the zx_object_get_info syscall for the ZX_INFO_HANDLE_BASIC topic.
§

fn count_info(&self) -> Result<HandleCountInfo, Status>

Wraps the zx_object_get_info syscall for the ZX_INFO_HANDLE_COUNT topic.
§

fn get_koid(&self) -> Result<Koid, Status>

Returns the koid (kernel object ID) for this handle.
§

impl Debug for Handle

§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
§

impl Drop for Handle

§

fn drop(&mut self)

Executes the destructor for this type. Read more
§

impl Encodable for Handle

§

type Encoded = WireHandle

The wire type for the value.
§

const COPY_OPTIMIZATION: CopyOptimization<Self> = _

An optimization flag that allows the bytes of this type to be copied directly during encoding instead of calling encode. Read more
§

impl EncodableOption for Handle

§

type EncodedOption = WireOptionalHandle

The wire type for the optional value.
§

impl<E> Encode<E> for Handle
where E: HandleEncoder + ?Sized,

§

fn encode( self, encoder: &mut E, out: &mut MaybeUninit<<Handle as Encodable>::Encoded>, ) -> Result<(), EncodeError>

Encodes this value into an encoder and output.
§

impl<E> EncodeOption<E> for Handle
where E: HandleEncoder + ?Sized,

§

fn encode_option( this: Option<Handle>, encoder: &mut E, out: &mut MaybeUninit<<Handle as EncodableOption>::EncodedOption>, ) -> Result<(), EncodeError>

Encodes this optional value into an encoder and output.
Source§

impl From<AdvisoryLockingSynchronousProxy> for Handle

Source§

fn from(value: AdvisoryLockingSynchronousProxy) -> Handle

Converts to this type from the input type.
§

impl From<Bti> for Handle

§

fn from(x: Bti) -> Handle

Converts to this type from the input type.
§

impl From<Bti> for Handle

§

fn from(x: Bti) -> Handle

Converts to this type from the input type.
§

impl From<Channel> for Handle

§

fn from(x: Channel) -> Handle

Converts to this type from the input type.
§

impl<T> From<ClientEnd<T>> for Handle

§

fn from(client: ClientEnd<T>) -> Handle

Converts to this type from the input type.
§

impl<Reference, Output> From<Clock<Reference, Output>> for Handle
where Reference: Timeline, Output: Timeline,

§

fn from(x: Clock<Reference, Output>) -> Handle

Converts to this type from the input type.
§

impl From<CloneableSynchronousProxy> for Handle

§

fn from(value: CloneableSynchronousProxy) -> Handle

Converts to this type from the input type.
§

impl From<CloseableSynchronousProxy> for Handle

§

fn from(value: CloseableSynchronousProxy) -> Handle

Converts to this type from the input type.
§

impl From<Counter> for Handle

§

fn from(x: Counter) -> Handle

Converts to this type from the input type.
§

impl From<DebugLog> for Handle

§

fn from(x: DebugLog) -> Handle

Converts to this type from the input type.
Source§

impl From<DirectorySynchronousProxy> for Handle

Source§

fn from(value: DirectorySynchronousProxy) -> Handle

Converts to this type from the input type.
Source§

impl From<DirectoryWatcherSynchronousProxy> for Handle

Source§

fn from(value: DirectoryWatcherSynchronousProxy) -> Handle

Converts to this type from the input type.
§

impl From<Event> for Handle

§

fn from(x: Event) -> Handle

Converts to this type from the input type.
§

impl From<EventPair> for Handle

§

fn from(x: EventPair) -> Handle

Converts to this type from the input type.
§

impl From<Exception> for Handle

§

fn from(x: Exception) -> Handle

Converts to this type from the input type.
§

impl From<Exception> for Handle

§

fn from(x: Exception) -> Handle

Converts to this type from the input type.
Source§

impl From<ExtendedAttributeIteratorSynchronousProxy> for Handle

Source§

fn from(value: ExtendedAttributeIteratorSynchronousProxy) -> Handle

Converts to this type from the input type.
§

impl<R, W> From<Fifo<R, W>> for Handle

§

fn from(x: Fifo<R, W>) -> Handle

Converts to this type from the input type.
Source§

impl From<FileSynchronousProxy> for Handle

Source§

fn from(value: FileSynchronousProxy) -> Handle

Converts to this type from the input type.
§

impl From<Guest> for Handle

§

fn from(x: Guest) -> Handle

Converts to this type from the input type.
§

impl From<Interrupt> for Handle

§

fn from(x: Interrupt) -> Handle

Converts to this type from the input type.
§

impl From<Iob> for Handle

§

fn from(x: Iob) -> Handle

Converts to this type from the input type.
§

impl From<IobSharedRegion> for Handle

§

fn from(x: IobSharedRegion) -> Handle

Converts to this type from the input type.
§

impl From<Iommu> for Handle

§

fn from(x: Iommu) -> Handle

Converts to this type from the input type.
§

impl From<Iommu> for Handle

§

fn from(x: Iommu) -> Handle

Converts to this type from the input type.
§

impl From<Job> for Handle

§

fn from(x: Job) -> Handle

Converts to this type from the input type.
Source§

impl From<LinkableSynchronousProxy> for Handle

Source§

fn from(value: LinkableSynchronousProxy) -> Handle

Converts to this type from the input type.
§

impl From<Msi> for Handle

§

fn from(x: Msi) -> Handle

Converts to this type from the input type.
Source§

impl From<NodeSynchronousProxy> for Handle

Source§

fn from(value: NodeSynchronousProxy) -> Handle

Converts to this type from the input type.
§

impl From<Pager> for Handle

§

fn from(x: Pager) -> Handle

Converts to this type from the input type.
§

impl From<Pager> for Handle

§

fn from(x: Pager) -> Handle

Converts to this type from the input type.
§

impl From<PciDevice> for Handle

§

fn from(x: PciDevice) -> Handle

Converts to this type from the input type.
§

impl From<Pmt> for Handle

§

fn from(x: Pmt) -> Handle

Converts to this type from the input type.
§

impl From<Pmt> for Handle

§

fn from(x: Pmt) -> Handle

Converts to this type from the input type.
§

impl From<Port> for Handle

§

fn from(x: Port) -> Handle

Converts to this type from the input type.
§

impl From<Process> for Handle

§

fn from(x: Process) -> Handle

Converts to this type from the input type.
§

impl From<Profile> for Handle

§

fn from(x: Profile) -> Handle

Converts to this type from the input type.
§

impl From<QueryableSynchronousProxy> for Handle

§

fn from(value: QueryableSynchronousProxy) -> Handle

Converts to this type from the input type.
Source§

impl From<ReadableSynchronousProxy> for Handle

Source§

fn from(value: ReadableSynchronousProxy) -> Handle

Converts to this type from the input type.
§

impl From<Resource> for Handle

§

fn from(x: Resource) -> Handle

Converts to this type from the input type.
§

impl<T> From<ServerEnd<T>> for Handle

§

fn from(server: ServerEnd<T>) -> Handle

Converts to this type from the input type.
§

impl From<Socket> for Handle

§

fn from(x: Socket) -> Handle

Converts to this type from the input type.
§

impl From<Stream> for Handle

§

fn from(x: Stream) -> Handle

Converts to this type from the input type.
§

impl From<SuspendToken> for Handle

§

fn from(x: SuspendToken) -> Handle

Converts to this type from the input type.
Source§

impl From<SymlinkSynchronousProxy> for Handle

Source§

fn from(value: SymlinkSynchronousProxy) -> Handle

Converts to this type from the input type.
§

impl From<Thread> for Handle

§

fn from(x: Thread) -> Handle

Converts to this type from the input type.
§

impl<T> From<Timer<T>> for Handle
where T: Timeline,

§

fn from(x: Timer<T>) -> Handle

Converts to this type from the input type.
§

impl From<Vcpu> for Handle

§

fn from(x: Vcpu) -> Handle

Converts to this type from the input type.
§

impl From<Vmar> for Handle

§

fn from(x: Vmar) -> Handle

Converts to this type from the input type.
§

impl From<Vmo> for Handle

§

fn from(x: Vmo) -> Handle

Converts to this type from the input type.
Source§

impl From<WritableSynchronousProxy> for Handle

Source§

fn from(value: WritableSynchronousProxy) -> Handle

Converts to this type from the input type.
§

impl HandleBased for Handle

§

fn duplicate_handle(&self, rights: Rights) -> Result<Self, Status>

Duplicate a handle, possibly reducing the rights available. Wraps the zx_handle_duplicate syscall.
§

fn replace_handle(self, rights: Rights) -> Result<Self, Status>

Create a replacement for a handle, possibly reducing the rights available. This invalidates the original handle. Wraps the zx_handle_replace syscall.
§

fn into_handle(self) -> Handle

Converts the value into its inner handle. Read more
§

fn into_raw(self) -> u32

Converts the handle into it’s raw representation. Read more
§

fn from_handle(handle: Handle) -> Self

Creates an instance of this type from a handle. Read more
§

fn into_handle_based<H>(self) -> H
where H: HandleBased,

Creates an instance of another handle-based type from this value’s inner handle.
§

fn from_handle_based<H>(h: H) -> Self
where H: HandleBased,

Creates an instance of this type from the inner handle of another handle-based type.
§

fn is_invalid_handle(&self) -> bool

§

impl HandleFor<DefaultFuchsiaResourceDialect> for Handle

§

type HandleInfo = HandleInfo

Handle info used in this dialect. Read more
§

fn invalid() -> Handle

Produce an invalid version of Handle used as a place filler when we remove handles from an array.
§

fn is_invalid(&self) -> bool

Check whether a handle is invalid.
§

impl Hash for Handle

§

fn hash<__H>(&self, state: &mut __H)
where __H: Hasher,

Feeds this value into the given Hasher. Read more
1.3.0 · Source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
§

impl Ord for Handle

§

fn cmp(&self, other: &Handle) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 · Source§

fn max(self, other: Self) -> Self
where Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 · Source§

fn min(self, other: Self) -> Self
where Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 · Source§

fn clamp(self, min: Self, max: Self) -> Self
where Self: Sized,

Restrict a value to a certain interval. Read more
§

impl PartialEq for Handle

§

fn eq(&self, other: &Handle) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
§

impl PartialOrd for Handle

§

fn partial_cmp(&self, other: &Handle) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
1.0.0 · Source§

fn lt(&self, other: &Rhs) -> bool

Tests less than (for self and other) and is used by the < operator. Read more
1.0.0 · Source§

fn le(&self, other: &Rhs) -> bool

Tests less than or equal to (for self and other) and is used by the <= operator. Read more
1.0.0 · Source§

fn gt(&self, other: &Rhs) -> bool

Tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 · Source§

fn ge(&self, other: &Rhs) -> bool

Tests greater than or equal to (for self and other) and is used by the >= operator. Read more
§

impl TakeFrom<WireHandle> for Handle

§

fn take_from(from: &WireHandle) -> Handle

Converts from the given T, taking any resources that can’t be cloned.
§

const COPY_OPTIMIZATION: CopyOptimization<Self> = _

An optimization flag that allows the bytes of this type to be copied directly during conversion instead of calling take_from. Read more
§

impl Eq for Handle

§

impl StructuralPartialEq for Handle