Sender

Struct Sender 

Source
pub struct Sender<T, Codec = Json> { /* 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> Sender<T, Codec>
where T: Send + 'static,

Source

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

Sends a value over this channel, notifying all receivers.

This method fails if all receivers have been dropped or become disconnected.

§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 send_modify<F>(&self, func: F)
where F: FnOnce(&mut T),

Modifies the watched value and notifies all receivers.

This method never fails, even if all receivers have been dropped or become disconnected.

§Panics

This method panics if calling func results in a panic.

Source

pub fn send_replace(&self, value: T) -> T

Sends a new value via the channel, notifying all receivers and returning the previous value in the channel.

This method never fails, even if all receivers have been dropped or become disconnected.

Source

pub fn borrow(&self) -> Ref<'_, T>

Returns a reference to the most recently sent value.

Source

pub async fn closed(&self)

Completes when all receivers have been dropped or the connection failed.

Source

pub fn is_closed(&self) -> bool

Returns whether all receivers have been dropped or the connection failed.

Source

pub fn subscribe(&self) -> Receiver<T, Codec>

Creates a new receiver subscribed to this sender.

Source

pub fn error(&self) -> Option<SendError>

Returns the error that occurred during sending to a remote endpoint, if any.

§Error reporting

Sending and error reporting are done asynchronously. Thus, the reporting of an error may be delayed.

Source

pub fn clear_error(&mut self)

Clears the error that occurred during sending to a remote endpoint.

Source

pub fn check(&mut self) -> Result<(), SendError>

Checks that no item-specific send error has occurred.

This method clears non-item-specific errors present on the channel.

§Error reporting

Sending and error reporting are done asynchronously. Thus, the reporting of an error may be delayed.

To verify that no item-specific send error has occurred during the lifetime of the channel, call this method after the channel is closed, i.e. closed has returned or is_closed is true.

Source

pub fn max_item_size(&self) -> usize

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> Debug for Sender<T, Codec>

Source§

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

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

impl<'de, T, Codec> Deserialize<'de> for Sender<T, Codec>
where T: RemoteSend + Sync + Clone, Codec: Codec,

Source§

fn deserialize<D>( deserializer: D, ) -> Result<Sender<T, Codec>, <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> Drop for Sender<T, Codec>

Source§

fn drop(&mut self)

Executes the destructor for this type. Read more
Source§

impl<T, Codec> Serialize for Sender<T, Codec>
where T: RemoteSend + Sync + Clone, 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 = Json> !Freeze for Sender<T, Codec>

§

impl<T, Codec> RefUnwindSafe for Sender<T, Codec>
where Codec: RefUnwindSafe,

§

impl<T, Codec> Send for Sender<T, Codec>
where Codec: Send, T: Send + Sync,

§

impl<T, Codec> Sync for Sender<T, Codec>
where Codec: Sync + Send, T: Send + Sync,

§

impl<T, Codec> Unpin for Sender<T, Codec>
where Codec: Unpin,

§

impl<T, Codec> UnwindSafe for Sender<T, Codec>
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> 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, 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,