[][src]Struct meio::prelude::Address

pub struct Address<A: Actor> { /* fields omitted */ }

Address to send messages to Actor.

Can be compared each other to identify senders to the same Actor.

Implementations

impl<A: Actor> Address<A>[src]

pub fn id(&self) -> IdOf<A>[src]

Returns a typed id of the Actor.

pub async fn act<I>(&mut self, input: I) -> Result<(), Error> where
    I: Action,
    A: ActionHandler<I>, 
[src]

Just sends an Action to the Actor.

pub fn instant<I>(&mut self, input: I) -> Result<(), Error> where
    I: InstantAction,
    A: InstantActionHandler<I>, 
[src]

Just sends an Action to the Actor.

pub fn schedule<I>(&mut self, input: I, deadline: Instant) -> Result<(), Error> where
    I: Send + 'static,
    A: Scheduled<I>, 
[src]

Just sends an Action to the Actor.

pub async fn interact<I>(&mut self, request: I) -> Result<I::Output, Error> where
    I: Interaction,
    A: InteractionHandler<I>, 
[src]

Interacts with an Actor and waits for the result of the Interaction.

pub async fn join(&mut self)[src]

Waits when the Actor will be terminated.

pub fn attach<S>(&self, stream: S) where
    A: Consumer<S::Item>,
    S: Stream + Send + Unpin + 'static,
    S::Item: Send + 'static, 
[src]

Attaches a Stream of event to an Actor.

Returns a Link to an Actor. Link is a convenient concept for creating wrappers for Address that provides methods instead of using message types directly. It allows also to use private message types opaquely.

pub fn action_recipient<T>(&self) -> Box<dyn ActionRecipient<T>> where
    T: Action,
    A: ActionHandler<T>, 
[src]

Returns an ActionRecipient instance.

pub fn interaction_recipient<T>(&self) -> Box<dyn InteractionRecipient<T>> where
    T: Interaction,
    A: InteractionHandler<T>, 
[src]

Returns an InteractionRecipient instance.

Trait Implementations

impl<T, A> ActionRecipient<T> for Address<A> where
    T: Action,
    A: Actor + ActionHandler<T>, 
[src]

impl<A: Actor> Clone for Address<A>[src]

impl<A: Actor> Debug for Address<A>[src]

impl<A: Actor> Eq for Address<A>[src]

impl<A: Actor> Hash for Address<A>[src]

impl<T, A> InteractionRecipient<T> for Address<A> where
    T: Interaction,
    A: Actor + InteractionHandler<T>, 
[src]

impl<T, A> Into<Box<dyn ActionRecipient<T> + 'static, Global>> for Address<A> where
    T: Action,
    A: Actor + ActionHandler<T>, 
[src]

impl<T, A> Into<Box<dyn InteractionRecipient<T> + 'static, Global>> for Address<A> where
    T: Interaction,
    A: Actor + InteractionHandler<T>, 
[src]

impl<A: Actor> PartialEq<Address<A>> for Address<A>[src]

Auto Trait Implementations

impl<A> !RefUnwindSafe for Address<A>[src]

impl<A> Send for Address<A>[src]

impl<A> Sync for Address<A>[src]

impl<A> Unpin for Address<A>[src]

impl<A> !UnwindSafe for Address<A>[src]

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

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

The type returned in the event of a conversion error.

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