pub struct Channel { /* private fields */ }Expand description
Data pipelines that transmit bytes bidirectionally.
Implementations§
Source§impl Channel
impl Channel
Sourcepub async fn create(client: &Client, capacity: u32) -> Result<Self, ClientError>
pub async fn create(client: &Client, capacity: u32) -> Result<Self, ClientError>
Create a channel using the remote-client guest.
Sourcepub fn new(client: &Client, handle: GuestResourceId) -> Self
pub fn new(client: &Client, handle: GuestResourceId) -> Self
Construct a handle to an existing channel.
§Safety
handle must be a valid channel capability minted for the current client; forged or stale
handles will be rejected by the remote guest and may cause the connection to be closed.
Sourcepub async fn delete(self) -> Result<(), ClientError>
pub async fn delete(self) -> Result<(), ClientError>
Delete this channel.
Sourcepub async fn subscribe(
&self,
chunk_size: u32,
) -> Result<Subscriber, ClientError>
pub async fn subscribe( &self, chunk_size: u32, ) -> Result<Subscriber, ClientError>
Subscribe to this channel as a Subscriber of byte payloads.
§Examples
use futures::{StreamExt, pin_mut};
let mut subscriber = channel.subscribe(64 * 1024).await?;
pin_mut!(subscriber);
if let Some(frame) = subscriber.next().await {
let payload = frame?;
eprintln!("received {} bytes", payload.len());
}Subscribe to this channel as a Subscriber of byte payloads.
§Examples
use futures::{StreamExt, pin_mut};
let mut subscriber = channel.subscribe_shared(64 * 1024).await?;
pin_mut!(subscriber);
if let Some(frame) = subscriber.next().await {
let payload = frame?;
eprintln!("received {} bytes", payload.len());
}Sourcepub async fn publish(&self) -> Result<Publisher, ClientError>
pub async fn publish(&self) -> Result<Publisher, ClientError>
Sourcepub fn handle(&self) -> GuestResourceId
pub fn handle(&self) -> GuestResourceId
Expose the raw handle.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for Channel
impl !RefUnwindSafe for Channel
impl Send for Channel
impl Sync for Channel
impl Unpin for Channel
impl !UnwindSafe for Channel
Blanket Implementations§
Source§impl<T> ArchivePointee for T
impl<T> ArchivePointee for T
Source§type ArchivedMetadata = ()
type ArchivedMetadata = ()
The archived version of the pointer metadata for this type.
Source§fn pointer_metadata(
_: &<T as ArchivePointee>::ArchivedMetadata,
) -> <T as Pointee>::Metadata
fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata
Converts some archived metadata to the pointer metadata for itself.
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> LayoutRaw for T
impl<T> LayoutRaw for T
Source§fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
Returns the layout of the type.
Source§impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
Source§unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool
unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool
Returns whether the given value has been niched. Read more
Source§fn resolve_niched(out: Place<NichedOption<T, N1>>)
fn resolve_niched(out: Place<NichedOption<T, N1>>)
Writes data to
out indicating that a T is niched.