Struct fidl::handle::fuchsia_handles::Channel

source ·
pub struct Channel(/* private fields */);
Expand description

An object representing a Zircon channel.

As essentially a subtype of Handle, it can be freely interconverted.

Implementations§

source§

impl Channel

source

pub fn create() -> (Channel, Channel)

Create a channel, resulting in a pair of Channel objects representing both sides of the channel. Messages written into one may be read from the opposite.

Wraps the zx_channel_create syscall.

§Panics

If the process’ job policy denies channel creation or the kernel reports no memory available to create a new channel.

source

pub fn read_uninit<'b, 'h>( &self, bytes: &'b mut [MaybeUninit<u8>], handles: &'h mut [MaybeUninit<Handle>], ) -> ChannelReadResult<(&'b mut [u8], &'h mut [Handle])>

Read a message from a channel. Wraps the zx_channel_read syscall. Care should be taken to avoid handle leaks by either transferring the returned handles out to another type or dropping them explicitly.

source

pub unsafe fn read_raw( &self, bytes: *mut u8, bytes_len: usize, handles: *mut Handle, handles_len: usize, ) -> ChannelReadResult<(usize, usize)>

Read a message from a channel. Wraps the zx_channel_read syscall.

§Safety

bytes must be valid to write to for bytes_len bytes. handles must be valid to write to for handles_len elements.

source

pub fn read(&self, buf: &mut MessageBuf) -> Result<(), Status>

Read a message from a channel.

Note that this method can cause internal reallocations in the MessageBuf if it is lacks capacity to hold the full message. If such reallocations are not desirable, use read_raw instead.

source

pub fn read_split( &self, bytes: &mut Vec<u8>, handles: &mut Vec<Handle>, ) -> Result<(), Status>

Read a message from a channel into a separate byte vector and handle vector.

If the provided handles has any elements, they will be dropped before reading from the channel.

Note that this method can cause internal reallocations in the Vecs if they lacks capacity to hold the full message. If such reallocations are not desirable, use read_uninit instead.

source

pub fn read_etc_uninit<'b, 'h>( &self, bytes: &'b mut [MaybeUninit<u8>], handles: &'h mut [MaybeUninit<HandleInfo>], ) -> ChannelReadResult<(&'b mut [u8], &'h mut [HandleInfo])>

Read a message from a channel. Care should be taken to avoid handle leaks by either transferring the returned handles out to another type or dropping them explicitly.

This differs from read_uninit, in that it uses extended handle info.

Wraps the zx_channel_read syscall.

source

pub unsafe fn read_etc_raw( &self, bytes: *mut u8, bytes_len: usize, handles: *mut HandleInfo, handles_len: usize, ) -> ChannelReadResult<(usize, usize)>

Read a message from a channel. Wraps the zx_channel_read_etc syscall.

This differs from read_raw in that it returns extended information on the handles.

On success, returns the number of bytes and handles read.

§Safety

bytes must be valid to write to for bytes_len bytes.

handles must be valid to write to for handles_len elements.

source

pub fn read_etc(&self, buf: &mut MessageBufEtc) -> Result<(), Status>

Read a message from a channel.

This differs from read in that it returns extended information on the handles.

Note that this method can cause internal reallocations in the MessageBufEtc if it is lacks capacity to hold the full message. If such reallocations are not desirable, use read_etc_uninit or read_etc_raw instead.

source

pub fn read_etc_split( &self, bytes: &mut Vec<u8>, handles: &mut Vec<HandleInfo>, ) -> Result<(), Status>

Read a message from a channel into a separate byte vector and handle vector.

This differs from read_split in that it returns extended information on the handles.

Note that this method can cause internal reallocations in the Vecs if they lacks capacity to hold the full message. If such reallocations are not desirable, use read_etc_uninit or read_etc_raw instead.

source

pub fn write(&self, bytes: &[u8], handles: &mut [Handle]) -> Result<(), Status>

Write a message to a channel. Wraps the zx_channel_write syscall.

On return, the elements pointed to by handles will have been zeroed to reflect the fact that the handles have been transferred.

source

pub fn writev( &self, buffers: &[ChannelIoSlice<'_>], handles: &mut [Handle], ) -> Result<(), Status>

Write a message to a channel from a set of disjoint buffers. Wraps the zx_channel_write syscall.

On return, the elements pointed to by handles will have been zeroed to reflect the fact that the handles have been transferred.

source

pub unsafe fn write_raw( &self, bytes: *const u8, bytes_len: usize, handles: *mut Handle, handles_len: usize, ) -> Result<(), Status>

Write a message to a channel. Wraps the zx_channel_write syscall.

On return, the elements pointed to by handles will have been zeroed to reflect the fact that the handles have been transferred.

§Safety

bytes must be valid to read from for bytes_len elements.

handles must be valid to read from and write to for handles_len elements.

source

pub unsafe fn writev_raw( &self, buffers: *const ChannelIoSlice<'_>, buffers_len: usize, handles: *mut Handle, handles_len: usize, ) -> Result<(), Status>

Write a message to a channel from a set of disjoint buffers. Wraps the zx_channel_write syscall.

On return, the elements pointed to by handles will have been zeroed to reflect the fact that the handles have been transferred.

§Safety

buffers must be valid to read from for buffers_len elements.

handles must be valid to read from and write to for handles_len elements.

source

pub fn write_etc( &self, bytes: &[u8], handles: &mut [HandleDisposition<'_>], ) -> Result<(), Status>

Write a message to a channel. Wraps the zx_channel_write_etc syscall.

This differs from write, in that it uses extended handle info.

On return, the elements pointed to by handles will have been zeroed to reflect the fact that the handles have been transferred.

source

pub fn writev_etc( &self, buffers: &[ChannelIoSlice<'_>], handles: &mut [HandleDisposition<'_>], ) -> Result<(), Status>

Write a message to a channel from a set of disjoint buffers. Wraps the zx_channel_write_etc syscall.

This differs from writev, in that it uses extended handle info.

On return, the elements pointed to by handles will have been zeroed to reflect the fact that the handles have been transferred.

source

pub unsafe fn write_etc_raw( &self, bytes: *const u8, bytes_len: usize, handles: *mut HandleDisposition<'_>, handles_len: usize, ) -> Result<(), Status>

Write a message to a channel. Wraps the zx_channel_write_etc syscall.

This differs from write_raw, in that it uses extended handle info.

On return, the elements pointed to by handles will have been zeroed to reflect the fact that the handles have been transferred.

§Safety

bytes must be valid to read from for bytes_len bytes.

handles must be valid to read from and write to for handles_len elements.

source

pub unsafe fn writev_etc_raw( &self, buffers: *const ChannelIoSlice<'_>, buffers_len: usize, handles: *mut HandleDisposition<'_>, handles_len: usize, ) -> Result<(), Status>

Write a message to a channel from a set of disjoint buffers. Wraps the zx_channel_write_etc syscall.

This differs from writev_raw, in that it uses extended handle info.

On return, the elements pointed to by handles will have been zeroed to reflect the fact that the handles have been transferred.

§Safety

buffers must be valid to read from for buffers_len elements.

handles must be valid to read from and write to for handles_len elements.

source

pub fn call( &self, timeout: Instant<MonotonicTimeline>, bytes: &[u8], handles: &mut [Handle], buf: &mut MessageBuf, ) -> Result<(), Status>

Send a message consisting of the given bytes and handles to a channel and block until a reply is received or the timeout is reached.

On return, the elements pointed to by handles will have been zeroed to reflect the fact that the handles have been transferred.

The first four bytes of the written and read back messages are treated as a transaction ID of type zx_txid_t. The kernel generates a txid for the written message, replacing that part of the message as read from userspace. In other words, the first four bytes of bytes will be ignored, and the first four bytes of the response will contain a kernel-generated txid.

In order to avoid dropping replies, the provided MessageBuf will be resized to accommodate the maximum channel message size. For performance-sensitive code, consider reusing MessageBufs or calling call_uninit with a stack-allocated buffer.

Wraps the zx_channel_call syscall.

On failure returns the both the main and read status.

source

pub fn callv( &self, timeout: Instant<MonotonicTimeline>, buffers_in: &[ChannelIoSlice<'_>], handles: &mut [Handle], buf: &mut MessageBuf, ) -> Result<(), Status>

Send a message consisting of the given disjoint buffers and handles to a channel and block until a reply is received or the timeout is reached.

On return, the elements pointed to by handles will have been zeroed to reflect the fact that the handles have been transferred.

The first four bytes of the written and read back messages are treated as a transaction ID of type zx_txid_t. The kernel generates a txid for the written message, replacing that part of the message as read from userspace. In other words, the first four bytes pointed to by buffers_in will be ignored, and the first four bytes of the response will contain a kernel-generated txid.

In order to avoid dropping replies, the provided MessageBuf will be resized to accommodate the maximum channel message size. For performance-sensitive code, consider reusing MessageBufs or calling callv_uninit with a stack-allocated buffer.

Wraps the zx_channel_call syscall.

On failure returns the both the main and read status.

source

pub fn call_uninit<'b, 'h>( &self, timeout: Instant<MonotonicTimeline>, bytes_in: &[u8], handles_in: &mut [Handle], bytes_out: &'b mut [MaybeUninit<u8>], handles_out: &'h mut [MaybeUninit<Handle>], ) -> Result<(&'b mut [u8], &'h mut [Handle]), Status>

Send a message consisting of the given bytes and handles to a channel and block until a reply is received or the timeout is reached. Returns initialized slices of byte message and handles on success. Care should be taken to avoid handle leaks by either transferring the returned handles out to another type or dropping them explicitly.

On return, the elements pointed to by handles_in will have been zeroed to reflect the fact that the handles have been transferred.

The first four bytes of the written and read back messages are treated as a transaction ID of type zx_txid_t. The kernel generates a txid for the written message, replacing that part of the message as read from userspace. In other words, the first four bytes of bytes_in will be ignored, and the first four bytes of the response will contain a kernel-generated txid.

In order to avoid dropping replies, this wrapper requires that the provided out buffers have enough space to handle the largest channel messages possible.

Wraps the zx_channel_call syscall.

On failure returns the both the main and read status.

source

pub fn callv_uninit<'b, 'h>( &self, timeout: Instant<MonotonicTimeline>, buffers_in: &[ChannelIoSlice<'_>], handles_in: &mut [Handle], bytes_out: &'b mut [MaybeUninit<u8>], handles_out: &'h mut [MaybeUninit<Handle>], ) -> Result<(&'b mut [u8], &'h mut [Handle]), Status>

Send a message consisting of the given disjoint buffers and handles to a channel and block until a reply is received or the timeout is reached. Returns initialized slices of byte message and handles on success. Care should be taken to avoid handle leaks by either transferring the returned handles out to another type or dropping them explicitly.

On return, the elements pointed to by handles_in will have been zeroed to reflect the fact that the handles have been transferred.

The first four bytes of the written and read back messages are treated as a transaction ID of type zx_txid_t. The kernel generates a txid for the written message, replacing that part of the message as read from userspace. In other words, the first four bytes pointed to by buffers_in will be ignored, and the first four bytes of the response will contain a kernel-generated txid.

In order to avoid dropping replies, this wrapper requires that the provided out buffers have enough space to handle the largest channel messages possible.

Wraps the zx_channel_call syscall.

On failure returns the both the main and read status.

source

pub unsafe fn call_raw( &self, timeout: Instant<MonotonicTimeline>, bytes_in: *const u8, bytes_in_len: usize, handles_in: *mut Handle, handles_in_len: usize, bytes_out: *mut u8, bytes_out_len: usize, handles_out: *mut Handle, handles_out_len: usize, ) -> Result<(usize, usize), Status>

Send a message consisting of the given bytes and handles to a channel and block until a reply is received or the timeout is reached. On success, returns the number of bytes and handles read from the reply, in that order.

The first four bytes of the written and read back messages are treated as a transaction ID of type zx_txid_t. The kernel generates a txid for the written message, replacing that part of the message as read from userspace. In other words, the first four bytes of bytes_in will be ignored, and the first four bytes of the response will contain a kernel-generated txid.

In order to avoid dropping replies, this wrapper requires that the provided out buffers have enough space to handle the largest channel messages possible.

On return, the elements pointed to by handles_in will have been zeroed to reflect the fact that the handles have been transferred.

Wraps the zx_channel_call syscall.

On failure returns the both the main and read status.

§Safety

bytes_in must be valid to read from for bytes_in_len bytes.

handles_in must be valid to read from and write to for handles_in_len elements.

bytes_out must be valid to write to for bytes_out_len bytes.

handles_out must be valid to write to for handles_out_len elements.

bytes_in and bytes_out may overlap. handles_in and handles_out may not overlap.

source

pub unsafe fn callv_raw( &self, timeout: Instant<MonotonicTimeline>, buffers_in: *const ChannelIoSlice<'_>, buffers_in_len: usize, handles_in: *mut Handle, handles_in_len: usize, bytes_out: *mut u8, bytes_out_len: usize, handles_out: *mut Handle, handles_out_len: usize, ) -> Result<(usize, usize), Status>

Send a message consisting of the given disjoint buffers and handles to a channel and block until a reply is received or the timeout is reached. On success, returns the number of bytes and handles read from the reply, in that order.

The first four bytes of the written and read back messages are treated as a transaction ID of type zx_txid_t. The kernel generates a txid for the written message, replacing that part of the message as read from userspace. In other words, the first four bytes pointed to by buffers_in will be ignored, and the first four bytes of the response will contain a kernel-generated txid.

In order to avoid dropping replies, this wrapper requires that the provided out buffers have enough space to handle the largest channel messages possible.

On return, the elements pointed to by handles_in will have been zeroed to reflect the fact that the handles have been transferred.

Wraps the zx_channel_call syscall.

On failure returns the both the main and read status.

§Safety

buffers_in must be valid to read from for buffers_in_len elements.

handles_in must be valid to read from and write to for handles_in_len elements.

bytes_out must be valid to write to for bytes_out_len bytes.

handles_out must be valid to write to for handles_out_len elements.

None of the provided pointers may overlap.

source

pub fn call_etc( &self, timeout: Instant<MonotonicTimeline>, bytes: &[u8], handle_dispositions: &mut [HandleDisposition<'_>], buf: &mut MessageBufEtc, ) -> Result<(), Status>

Send a message consisting of the given bytes and handles to a channel and block until a reply is received or the timeout is reached.

On return, the elements pointed to by handle_dispositions will have been zeroed to reflect the fact that the handles have been transferred.

The first four bytes of the written and read back messages are treated as a transaction ID of type zx_txid_t. The kernel generates a txid for the written message, replacing that part of the message as read from userspace. In other words, the first four bytes of bytes will be ignored, and the first four bytes of the response will contain a kernel-generated txid.

In order to avoid dropping replies, the provided MessageBufEtc will be resized to accommodate the maximum channel message size. For performance-sensitive code, consider reusing MessageBufEtcs or calling call_etc_uninit with a stack-allocated buffer.

This differs from call, in that it uses extended handle info.

Wraps the zx_channel_call_etc syscall.

On failure returns the both the main and read status.

source

pub fn callv_etc( &self, timeout: Instant<MonotonicTimeline>, buffers_in: &[ChannelIoSlice<'_>], handle_dispositions: &mut [HandleDisposition<'_>], buf: &mut MessageBufEtc, ) -> Result<(), Status>

Send a message consisting of the given disjoint buffers and handles to a channel and block until a reply is received or the timeout is reached.

On return, the elements pointed to by handle_dispositions will have been zeroed to reflect the fact that the handles have been transferred.

The first four bytes of the written and read back messages are treated as a transaction ID of type zx_txid_t. The kernel generates a txid for the written message, replacing that part of the message as read from userspace. In other words, the first four bytes pointed to by buffers_in will be ignored, and the first four bytes of the response will contain a kernel-generated txid.

In order to avoid dropping replies, the provided MessageBufEtc will be resized to accommodate the maximum channel message size. For performance-sensitive code, consider reusing MessageBufEtcs or calling call_etc_uninit with a stack-allocated buffer.

This differs from callv, in that it uses extended handle info.

Wraps the zx_channel_call_etc syscall.

On failure returns the both the main and read status.

source

pub fn call_etc_uninit<'b, 'h>( &self, timeout: Instant<MonotonicTimeline>, bytes_in: &[u8], handles_in: &mut [HandleDisposition<'_>], bytes_out: &'b mut [MaybeUninit<u8>], handles_out: &'h mut [MaybeUninit<HandleInfo>], ) -> Result<(&'b mut [u8], &'h mut [HandleInfo]), Status>

Send a message consisting of the given bytes and handles to a channel and block until a reply is received or the timeout is reached. Returns initialized slices of byte message and handles on success. Care should be taken to avoid handle leaks by either transferring the returned handles out to another type or dropping them explicitly.

On return, the elements pointed to by handles_in will have been zeroed to reflect the fact that the handles have been transferred.

The first four bytes of the written and read back messages are treated as a transaction ID of type zx_txid_t. The kernel generates a txid for the written message, replacing that part of the message as read from userspace. In other words, the first four bytes of bytes_in will be ignored, and the first four bytes of the response will contain a kernel-generated txid.

This differs from call_uninit, in that it uses extended handle info.

In order to avoid dropping replies, this wrapper requires that the provided out buffers have enough space to handle the largest channel messages possible.

Wraps the zx_channel_call_etc syscall.

On failure returns the both the main and read status.

source

pub fn callv_etc_uninit<'b, 'h>( &self, timeout: Instant<MonotonicTimeline>, buffers_in: &[ChannelIoSlice<'_>], handles_in: &mut [HandleDisposition<'_>], bytes_out: &'b mut [MaybeUninit<u8>], handles_out: &'h mut [MaybeUninit<HandleInfo>], ) -> Result<(&'b mut [u8], &'h mut [HandleInfo]), Status>

Send a message consisting of the given disjoint buffers and handles to a channel and block until a reply is received or the timeout is reached. Returns initialized slices of byte message and handles on success. Care should be taken to avoid handle leaks by either transferring the returned handles out to another type or dropping them explicitly.

On return, the elements pointed to by handles_in will have been zeroed to reflect the fact that the handles have been transferred.

The first four bytes of the written and read back messages are treated as a transaction ID of type zx_txid_t. The kernel generates a txid for the written message, replacing that part of the message as read from userspace. In other words, the first four bytes pointed to by buffers_in will be ignored, and the first four bytes of the response will contain a kernel-generated txid.

This differs from callv_uninit, in that it uses extended handle info.

In order to avoid dropping replies, this wrapper requires that the provided out buffers have enough space to handle the largest channel messages possible.

Wraps the zx_channel_call_etc syscall.

On failure returns the both the main and read status.

source

pub unsafe fn call_etc_raw( &self, timeout: Instant<MonotonicTimeline>, bytes_in: *const u8, bytes_in_len: usize, handles_in: *mut HandleDisposition<'_>, handles_in_len: usize, bytes_out: *mut u8, bytes_out_len: usize, handles_out: *mut HandleInfo, handles_out_len: usize, ) -> Result<(usize, usize), Status>

Send a message consisting of the given bytes and handles to a channel and block until a reply is received or the timeout is reached. On success, returns the number of bytes and handles read from the reply, in that order.

The first four bytes of the written and read back messages are treated as a transaction ID of type zx_txid_t. The kernel generates a txid for the written message, replacing that part of the message as read from userspace. In other words, the first four bytes of bytes_in will be ignored, and the first four bytes of the response will contain a kernel-generated txid.

This differs from call_raw, in that it uses extended handle info.

In order to avoid dropping replies, this wrapper requires that the provided out buffers have enough space to handle the largest channel messages possible.

On return, the elements pointed to by handles_in will have been zeroed to reflect the fact that the handles have been transferred.

Wraps the zx_channel_call_etc syscall.

On failure returns the both the main and read status.

§Safety

bytes_in must be valid to read from for bytes_in_len bytes.

handles_in must be valid to read from and write to for handles_in_len elements.

bytes_out must be valid to write to for bytes_out_len bytes.

handles_out must be valid to write to for handles_out_len elements.

bytes_in and bytes_out may overlap.

source

pub unsafe fn callv_etc_raw( &self, timeout: Instant<MonotonicTimeline>, buffers_in: *const ChannelIoSlice<'_>, buffers_in_len: usize, handles_in: *mut HandleDisposition<'_>, handles_in_len: usize, bytes_out: *mut u8, bytes_out_len: usize, handles_out: *mut HandleInfo, handles_out_len: usize, ) -> Result<(usize, usize), Status>

Send a message consisting of the given disjoint buffers and handles to a channel and block until a reply is received or the timeout is reached. On success, returns the number of bytes and handles read from the reply, in that order.

The first four bytes of the written and read back messages are treated as a transaction ID of type zx_txid_t. The kernel generates a txid for the written message, replacing that part of the message as read from userspace. In other words, the first four bytes pointed to by buffers_in will be ignored, and the first four bytes of the response will contain a kernel-generated txid.

This differs from callv_raw, in that it uses extended handle info.

In order to avoid dropping replies, this wrapper requires that the provided out buffers have enough space to handle the largest channel messages possible.

On return, the elements pointed to by handles_in will have been zeroed to reflect the fact that the handles have been transferred.

Wraps the zx_channel_call_etc syscall.

On failure returns the both the main and read status.

§Safety

buffers_in must be valid to read from for buffers_in_len elements.

handles_in must be valid to read from and write to for handles_in_len elements.

bytes_out must be valid to write to for bytes_out_len bytes.

handles_out must be valid to write to for handles_out_len elements.

None of the provided pointers may overlap.

Trait Implementations§

source§

impl AsHandleRef for Channel

source§

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.
source§

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).
source§

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.
source§

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

Waits on a handle. Wraps the zx_object_wait_one syscall.
source§

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.
source§

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

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

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

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

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

Wraps the zx_object_get_info syscall for the ZX_INFO_HANDLE_BASIC topic.
source§

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

Wraps the zx_object_get_info syscall for the ZX_INFO_HANDLE_COUNT topic.
source§

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

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

impl AsRef<Channel> for Channel

source§

fn as_ref(&self) -> &Channel

Converts this type into a shared reference of the (usually inferred) input type.
§

impl AsRef<Channel> for Channel

§

fn as_ref(&self) -> &Channel

Converts this type into a shared reference of the (usually inferred) input type.
source§

impl ChannelEpitaphExt for Channel

source§

fn close_with_epitaph(self, status: Status) -> Result<(), Error>

Consumes the channel and writes an epitaph.
source§

impl ChannelLike for Channel

source§

fn write_epitaph(&self, bytes: &[u8]) -> Result<(), TransportError>

Write an epitaph to a channel. Same as write_etc but is never fed handles.
source§

impl Debug for Channel

source§

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

Formats the value using the given formatter. Read more
§

impl From<Channel> for Channel

§

fn from(channel: Channel) -> Channel

Converts to this type from the input type.
source§

impl<T> From<Channel> for ClientEnd<T>

source§

fn from(chan: Channel) -> Self

Converts to this type from the input type.
source§

impl From<Channel> for Handle

source§

fn from(x: Channel) -> Handle

Converts to this type from the input type.
source§

impl<T> From<Channel> for ServerEnd<T>

source§

fn from(chan: Channel) -> Self

Converts to this type from the input type.
source§

impl<T> From<ClientEnd<T>> for Channel

source§

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

Converts to this type from the input type.
source§

impl From<Handle> for Channel

source§

fn from(handle: Handle) -> Channel

Converts to this type from the input type.
source§

impl<T> From<ServerEnd<T>> for Channel

source§

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

Converts to this type from the input type.
source§

impl HandleBased for Channel

source§

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

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

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.
source§

fn into_handle(self) -> Handle

Converts the value into its inner handle. Read more
source§

fn into_raw(self) -> u32

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

fn from_handle(handle: Handle) -> Self

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

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

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

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.
source§

fn is_invalid_handle(&self) -> bool

source§

impl Hash for Channel

source§

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
source§

impl Ord for Channel

source§

fn cmp(&self, other: &Channel) -> 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 + PartialOrd,

Restrict a value to a certain interval. Read more
source§

impl PartialEq for Channel

source§

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

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

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

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

impl PartialOrd for Channel

source§

fn partial_cmp(&self, other: &Channel) -> 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

This method 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

This method 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

This method 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

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

impl Peered for Channel

source§

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

Set and clear userspace-accessible signal bits on the object’s peer. Wraps the zx_object_signal_peer syscall.
source§

fn is_closed(&self) -> Result<bool, Status>

Returns true if the handle has received the PEER_CLOSED signal. Read more
source§

impl Eq for Channel

source§

impl StructuralPartialEq for Channel

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> EncodableAsHandle for T
where T: HandleBased,

§

type Dialect = DefaultFuchsiaResourceDialect

What resource dialect can encode this object as a handle.
source§

impl<T, D> Encode<Ambiguous1, D> for T
where D: ResourceDialect,

source§

unsafe fn encode( self, _encoder: &mut Encoder<'_, D>, _offset: usize, _depth: Depth, ) -> Result<(), Error>

Encodes the object into the encoder’s buffers. Any handles stored in the object are swapped for Handle::INVALID. Read more
source§

impl<T, D> Encode<Ambiguous2, D> for T
where D: ResourceDialect,

source§

unsafe fn encode( self, _encoder: &mut Encoder<'_, D>, _offset: usize, _depth: Depth, ) -> Result<(), Error>

Encodes the object into the encoder’s buffers. Any handles stored in the object are swapped for Handle::INVALID. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

§

impl<T> Pointable for T

§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more