Sender

Struct Sender 

Source
pub struct Sender<T, Codec = Json, const BUFFER: usize = remoc::::rch::mpsc::sender::Sender::{constant#0}> { /* private fields */ }
Expand description

Send values to the associated Receiver, which may be located on a remote endpoint.

Instances are created by the channel function.

Implementations§

Source§

impl<T, Codec, const BUFFER: usize> Sender<T, Codec, BUFFER>
where T: Send + 'static,

Source

pub async fn send(&self, value: T) -> Result<(), SendError<T>>

Sends a value over this channel.

§Error reporting

Sending and error reporting are done asynchronously. Thus, the reporting of an error may be delayed and this function may return errors caused by previous invocations.

Source

pub fn try_send(&self, value: T) -> Result<(), TrySendError<T>>

Attempts to immediately send a message over this channel.

§Error reporting

Sending and error reporting are done asynchronously. Thus, the reporting of an error may be delayed and this function may return errors caused by previous invocations.

Source

pub fn blocking_send(&self, value: T) -> Result<(), SendError<T>>

Blocking send to call outside of asynchronous contexts.

§Error reporting

Sending and error reporting are done asynchronously. Thus, the reporting of an error may be delayed and this function may return errors caused by previous invocations.

§Panics

This function panics if called within an asynchronous execution context.

Source

pub async fn reserve(&self) -> Result<Permit<T>, SendError<()>>

Wait for channel capacity, returning an owned permit. Once capacity to send one message is available, it is reserved for the caller.

§Error reporting

Sending and error reporting are done asynchronously. Thus, the reporting of an error may be delayed and this function may return errors caused by previous invocations.

Source

pub fn capacity(&self) -> usize

Returns the current capacity of the channel.

Zero is returned when the channel has been closed or an error has occurred.

Source

pub async fn closed(&self)

Completes when the receiver has been closed, dropped or the connection failed.

Use closed_reason to obtain the cause for closure.

Source

pub fn closed_reason(&self) -> Option<ClosedReason>

Returns the reason for why the channel has been closed.

Returns None if the channel is not closed.

Source

pub fn is_closed(&self) -> bool

Returns whether the receiver has been closed, dropped or the connection failed.

Use closed_reason to obtain the cause for closure.

Source

pub fn set_codec<NewCodec>(self) -> Sender<T, NewCodec, BUFFER>

Sets the codec that will be used when sending this sender to a remote endpoint.

Source

pub fn set_buffer<const NEW_BUFFER: usize>(self) -> Sender<T, Codec, NEW_BUFFER>

Sets the buffer size that will be used when sending this sender to a remote endpoint.

Source

pub fn max_item_size(&self) -> usize

The maximum allowed item size in bytes.

Source

pub fn set_max_item_size(&mut self, max_item_size: usize)

Sets the maximum allowed item size in bytes.

Trait Implementations§

Source§

impl<T, Codec, const BUFFER: usize> Clone for Sender<T, Codec, BUFFER>

Source§

fn clone(&self) -> Sender<T, Codec, BUFFER>

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl<T, Codec, const BUFFER: usize> Debug for Sender<T, Codec, BUFFER>

Source§

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

Formats the value using the given formatter. Read more
Source§

impl<'de, T, Codec, const BUFFER: usize> Deserialize<'de> for Sender<T, Codec, BUFFER>
where T: RemoteSend, Codec: Codec,

Source§

fn deserialize<D>( deserializer: D, ) -> Result<Sender<T, Codec, BUFFER>, <D as Deserializer<'de>>::Error>
where D: Deserializer<'de>,

Deserializes this sender after it has been received over a chmux channel.

Source§

impl<T, Codec, const BUFFER: usize> Drop for Sender<T, Codec, BUFFER>

Source§

fn drop(&mut self)

Executes the destructor for this type. Read more
Source§

impl<T, Codec, const BUFFER: usize> Serialize for Sender<T, Codec, BUFFER>
where T: RemoteSend, Codec: Codec,

Source§

fn serialize<S>( &self, serializer: S, ) -> Result<<S as Serializer>::Ok, <S as Serializer>::Error>
where S: Serializer,

Serializes this sender for sending over a chmux channel.

Auto Trait Implementations§

§

impl<T, Codec, const BUFFER: usize> Freeze for Sender<T, Codec, BUFFER>

§

impl<T, Codec, const BUFFER: usize> RefUnwindSafe for Sender<T, Codec, BUFFER>
where Codec: RefUnwindSafe,

§

impl<T, Codec, const BUFFER: usize> Send for Sender<T, Codec, BUFFER>
where Codec: Send, T: Send,

§

impl<T, Codec, const BUFFER: usize> Sync for Sender<T, Codec, BUFFER>
where Codec: Sync, T: Send,

§

impl<T, Codec, const BUFFER: usize> Unpin for Sender<T, Codec, BUFFER>
where Codec: Unpin,

§

impl<T, Codec, const BUFFER: usize> UnwindSafe for Sender<T, Codec, BUFFER>
where Codec: UnwindSafe,

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> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

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

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

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.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

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

Source§

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>,

Source§

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

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

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

fn with_current_subscriber(self) -> WithDispatch<Self>

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

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,

Source§

impl<T> RemoteSend for T
where T: Send + Serialize + DeserializeOwned + 'static,