Struct thespis_impl::Addr

source ·
pub struct Addr<A: Actor> { /* private fields */ }
Expand description

Reference implementation of thespis::Address<M>. It can be used to send all message types the actor implements thespis::Handler for.

When all Addr to a mailbox are dropped, the mailbox will end. There is also a WeakAddr that will not keep the actor alive.

Implementations§

source§

impl<A> Addr<A>where A: Actor,

source

pub fn builder(name: impl AsRef<str>) -> ActorBuilder<A>

Produces a builder for convenient creation of both Addr and Mailbox.

source

pub fn weak(&self) -> WeakAddr<A>

Create a new WeakAddr. This is an address that does not keep the mailbox alive.

source

pub fn info(&self) -> Arc<ActorInfo>

Information about the actor: id, name, typename and a span for tracing.

Trait Implementations§

source§

impl<A, M> Address<M> for Addr<A>where A: Actor + Handler<M>, M: Message,

source§

fn call(&mut self, msg: M) -> Return<'_, ThesRes<<M as Message>::Return>>

Call an actor and receive the result of the call. This is a two-way operation. Calling with a message type that has Return=() will notify you that the message has been handled by the receiver. Read more
source§

fn clone_box(&self) -> BoxAddress<M, ThesErr>

Get a clone of this address as a Box<Address<M>>.
source§

fn as_address(&self) -> &dyn Address<M, Error = Self::Error>where Self: Sized,

Upcast &self to &dyn Address.
source§

impl<A: Actor> Clone for Addr<A>

source§

fn clone(&self) -> Self

Returns a copy 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<A: Actor> Debug for Addr<A>

source§

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

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

impl<A: Actor> Display for Addr<A>

source§

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

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

impl<A: Actor> Drop for Addr<A>

source§

fn drop(&mut self)

Executes the destructor for this type. Read more
source§

impl<A> Identify for Addr<A>where A: Actor,

source§

fn id(&self) -> usize

Get the id of the mailbox this address sends to. There will be exactly one for each actor, so you can use this for uniquely identifying your actors.

This is an atomic usize that is incremented for every new mailbox. There currently is no overflow protection.

source§

fn name(&self) -> Arc<str>

A human readable name of the actor.
source§

impl<A: Actor> PartialEq<Addr<A>> for Addr<A>

Verify whether 2 Receivers will deliver to the same actor.

source§

fn eq(&self, other: &Self) -> 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<A, M> Sink<M> for Addr<A>where A: Actor + Handler<M>, M: Message,

source§

fn poll_close( self: Pin<&mut Self>, cx: &mut TaskContext<'_> ) -> Poll<Result<(), Self::Error>>

This is a no-op. The address can only really close when dropped. Close has no meaning before that.

§

type Error = ThesErr

The type of value produced by the sink when an error occurs.
source§

fn poll_ready( self: Pin<&mut Self>, cx: &mut TaskContext<'_> ) -> Poll<Result<(), Self::Error>>

Attempts to prepare the Sink to receive a value. Read more
source§

fn start_send(self: Pin<&mut Self>, msg: M) -> Result<(), Self::Error>

Begin the process of sending a value to the sink. Each call to this function must be preceded by a successful call to poll_ready which returned Poll::Ready(Ok(())). Read more
source§

fn poll_flush( self: Pin<&mut Self>, cx: &mut TaskContext<'_> ) -> Poll<Result<(), Self::Error>>

Flush any remaining output from this sink. Read more
source§

impl<A: Actor> Eq for Addr<A>

Auto Trait Implementations§

§

impl<A> !RefUnwindSafe for Addr<A>

§

impl<A> Send for Addr<A>

§

impl<A> !Sync for Addr<A>

§

impl<A> Unpin for Addr<A>

§

impl<A> !UnwindSafe for Addr<A>

Blanket Implementations§

source§

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

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

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

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

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

source§

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

Mutably borrows from an owned value. Read more
source§

impl<'a, T, Item, E> CloneSink<'a, Item, E> for Twhere T: 'a + Sink<Item, Error = E> + Clone + Unpin + Send + ?Sized,

source§

fn clone_sink(&self) -> Box<dyn CloneSink<'a, Item, E, Error = E>, Global>

Clone this sink.
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> 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 Twhere 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, Item> SinkExt<Item> for Twhere T: Sink<Item> + ?Sized,

§

fn with<U, Fut, F, E>(self, f: F) -> With<Self, Item, U, Fut, F>where F: FnMut(U) -> Fut, Fut: Future<Output = Result<Item, E>>, E: From<Self::Error>, Self: Sized,

Composes a function in front of the sink. Read more
§

fn with_flat_map<U, St, F>(self, f: F) -> WithFlatMap<Self, Item, U, St, F>where F: FnMut(U) -> St, St: Stream<Item = Result<Item, Self::Error>>, Self: Sized,

Composes a function in front of the sink. Read more
§

fn sink_map_err<E, F>(self, f: F) -> SinkMapErr<Self, F>where F: FnOnce(Self::Error) -> E, Self: Sized,

Transforms the error returned by the sink.
§

fn sink_err_into<E>(self) -> SinkErrInto<Self, Item, E>where Self: Sized, Self::Error: Into<E>,

Map this sink’s error to a different error type using the Into trait. Read more
§

fn buffer(self, capacity: usize) -> Buffer<Self, Item>where Self: Sized,

Adds a fixed-size buffer to the current sink. Read more
§

fn close(&mut self) -> Close<'_, Self, Item>where Self: Unpin,

Close the sink.
§

fn fanout<Si>(self, other: Si) -> Fanout<Self, Si>where Self: Sized, Item: Clone, Si: Sink<Item, Error = Self::Error>,

Fanout items to multiple sinks. Read more
§

fn flush(&mut self) -> Flush<'_, Self, Item>where Self: Unpin,

Flush the sink, processing all pending items. Read more
§

fn send(&mut self, item: Item) -> Send<'_, Self, Item>where Self: Unpin,

A future that completes after the given item has been fully processed into the sink, including flushing. Read more
§

fn feed(&mut self, item: Item) -> Feed<'_, Self, Item>where Self: Unpin,

A future that completes after the given item has been received by the sink. Read more
§

fn send_all<St, 'a>(&'a mut self, stream: &'a mut St) -> SendAll<'a, Self, St>where St: TryStream<Ok = Item, Error = Self::Error> + Stream + Unpin + ?Sized, Self: Unpin,

A future that completes after the given stream has been fully processed into the sink, including flushing. Read more
§

fn left_sink<Si2>(self) -> Either<Self, Si2>where Si2: Sink<Item, Error = Self::Error>, Self: Sized,

Wrap this sink in an Either sink, making it the left-hand variant of that Either. Read more
§

fn right_sink<Si1>(self) -> Either<Si1, Self>where Si1: Sink<Item, Error = Self::Error>, Self: Sized,

Wrap this stream in an Either stream, making it the right-hand variant of that Either. Read more
§

fn compat(self) -> CompatSink<Self, Item>where Self: Sized + Unpin,

Wraps a [Sink] into a sink compatible with libraries using futures 0.1 Sink. Requires the compat feature to be enabled.
§

fn poll_ready_unpin( &mut self, cx: &mut Context<'_> ) -> Poll<Result<(), Self::Error>>where Self: Unpin,

A convenience method for calling [Sink::poll_ready] on Unpin sink types.
§

fn start_send_unpin(&mut self, item: Item) -> Result<(), Self::Error>where Self: Unpin,

A convenience method for calling [Sink::start_send] on Unpin sink types.
§

fn poll_flush_unpin( &mut self, cx: &mut Context<'_> ) -> Poll<Result<(), Self::Error>>where Self: Unpin,

A convenience method for calling [Sink::poll_flush] on Unpin sink types.
§

fn poll_close_unpin( &mut self, cx: &mut Context<'_> ) -> Poll<Result<(), Self::Error>>where Self: Unpin,

A convenience method for calling [Sink::poll_close] on Unpin sink types.
source§

impl<T> ToOwned for Twhere T: Clone,

§

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> ToString for Twhere T: Display + ?Sized,

source§

default fn to_string(&self) -> String

Converts the given value to a String. Read more
source§

impl<T, U> TryFrom<U> for Twhere 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 Twhere 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.
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> 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