ActoInput

Enum ActoInput 

Source
pub enum ActoInput<M, S> {
    NoMoreSenders,
    Supervision {
        id: ActoId,
        name: String,
        result: Result<S, PanicOrAbort>,
    },
    Message(M),
}
Expand description

Actor input as received with [ActoCell::recv].

Variants§

§

NoMoreSenders

All previously generated [ActoRef] handles were dropped, leaving only the one within [ActoCell]; the actor may wish to terminate unless it has other sources of input.

Obtaining a new handle with [ActoCell::me] and dropping it will again generate this input.

§

Supervision

A supervised actor with the given ActoId has terminated.

The result contains either the value returned by the actor or the value with which the actor’s task panicked (if the underlying runtime handles this).

§Important notice

Supervision notifications are delivered as soon as possible after the supervised actor’s task has finished. Messages sent by that actor — possibly to the supervisor — may still be in flight at this point.

Fields

§name: String
§

Message(M)

A message has been received via our [ActoRef] handle.

Implementations§

Source§

impl<M, S> ActoInput<M, S>

Source

pub fn is_sender_gone(&self) -> bool

Source

pub fn is_supervision(&self) -> bool

Source

pub fn is_message(&self) -> bool

Source

pub fn has_senders(self) -> Option<ActoMsgSuper<M, S>>

Obtain input message or supervision unless this is ActoInput::NoMoreSenders.

use acto::{ActoCell, ActoRuntime};

async fn actor(mut cell: ActoCell<String, impl ActoRuntime>) {
    while let Some(input) = cell.recv().await.has_senders() {
        // do something with it
    }
    // actor automatically stops when all senders are gone
}

Trait Implementations§

Source§

impl<M: Debug, S: Debug> Debug for ActoInput<M, S>

Source§

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

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

impl<M: PartialEq, S> PartialEq for ActoInput<M, S>

Source§

fn eq(&self, other: &Self) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.

Auto Trait Implementations§

§

impl<M, S> Freeze for ActoInput<M, S>
where M: Freeze, S: Freeze,

§

impl<M, S> !RefUnwindSafe for ActoInput<M, S>

§

impl<M, S> Send for ActoInput<M, S>
where M: Send, S: Send,

§

impl<M, S> !Sync for ActoInput<M, S>

§

impl<M, S> Unpin for ActoInput<M, S>
where M: Unpin, S: Unpin,

§

impl<M, S> !UnwindSafe for ActoInput<M, S>

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