Struct tiny_actor::actor::Child
source · [−]pub struct Child<E, C = dyn AnyChannel> where
E: Send + 'static,
C: DynChannel + ?Sized, { /* private fields */ }Expand description
A child is the non clone-able reference to an actor with a single process.
Children can be of two forms:
Child<E, Channel<M>>: This is the default form, it can be transformed into aChild<E>using Child::into_dyn.Child<E>: This form is a dynamic child, it can be transformed back into aChild<E, Channel<M>>using Child::downcast::.
A child can be transformed into a ChildPool using Child::into_pool().
A child can be awaited which returns the parameter E once the actor exits.
Implementations
sourceimpl<E, C> Child<E, C> where
E: Send + 'static,
C: DynChannel + ?Sized,
impl<E, C> Child<E, C> where
E: Send + 'static,
C: DynChannel + ?Sized,
sourcepub fn into_tokio_joinhandle(self) -> JoinHandle<E>
pub fn into_tokio_joinhandle(self) -> JoinHandle<E>
Get the underlying JoinHandle.
This will not run the drop, and therefore the actor will not be halted/aborted.
sourcepub fn is_finished(&self) -> bool
pub fn is_finished(&self) -> bool
Whether the task is finished.
sourcepub fn downcast<M: Send + 'static>(self) -> Result<Child<E, Channel<M>>, Self> where
C: AnyChannel,
pub fn downcast<M: Send + 'static>(self) -> Result<Child<E, Channel<M>>, Self> where
C: AnyChannel,
Downcast the Child<E> to a Child<E, Channel<M>>.
sourcepub async fn shutdown(&mut self, timeout: Duration) -> Result<E, ExitError>
pub async fn shutdown(&mut self, timeout: Duration) -> Result<E, ExitError>
Halts the actor, and then waits for it to exit. This always returns with the result of the task, and closes the channel.
If the timeout expires before the actor has exited, the actor will be aborted.
sourcepub fn get_address(&self) -> Address<C>ⓘNotable traits for Address<C>impl<C: DynChannel + ?Sized> Future for Address<C> type Output = ();
pub fn get_address(&self) -> Address<C>ⓘNotable traits for Address<C>impl<C: DynChannel + ?Sized> Future for Address<C> type Output = ();
sourcepub fn attach(&mut self, duration: Duration) -> Option<Duration>
pub fn attach(&mut self, duration: Duration) -> Option<Duration>
Attach the actor.
Returns the old abort-timeout if it was already attached.
sourcepub fn detach(&mut self) -> Option<Duration>
pub fn detach(&mut self) -> Option<Duration>
Detach the actor.
Returns the old abort-timeout if it was attached before.
sourcepub fn is_aborted(&self) -> bool
pub fn is_aborted(&self) -> bool
Whether the actor is aborted.
sourcepub fn is_attached(&self) -> bool
pub fn is_attached(&self) -> bool
Whether the actor is attached.
sourcepub fn process_count(&self) -> usize
pub fn process_count(&self) -> usize
Get the amount of processes.
sourcepub fn address_count(&self) -> usize
pub fn address_count(&self) -> usize
pub fn is_bounded(&self) -> bool
sourcepub fn has_exited(&self) -> bool
pub fn has_exited(&self) -> bool
Whether all processes have exited.
sourceimpl<E, M> Child<E, Channel<M>> where
E: Send + 'static,
M: Send + 'static,
impl<E, M> Child<E, Channel<M>> where
E: Send + 'static,
M: Send + 'static,
sourcepub fn into_dyn(self) -> Child<E>ⓘNotable traits for Child<E, C>impl<E: Send + 'static, C: DynChannel + ?Sized> Future for Child<E, C> type Output = Result<E, ExitError>;
pub fn into_dyn(self) -> Child<E>ⓘNotable traits for Child<E, C>impl<E: Send + 'static, C: DynChannel + ?Sized> Future for Child<E, C> type Output = Result<E, ExitError>;
Convert the Child<T, Channel<M>> into a Child<T>
sourcepub fn try_send(&self, msg: M) -> Result<(), TrySendError<M>>
pub fn try_send(&self, msg: M) -> Result<(), TrySendError<M>>
Attempt to send a message to the actor.
- In the case of an
unboundedChannel, when BackPressure returns a timeout this fails. - In the case of a
boundedChannel, when it is full this fails.
For bounded channels, this method is the same as send_now.
sourcepub fn send_now(&self, msg: M) -> Result<(), TrySendError<M>>
pub fn send_now(&self, msg: M) -> Result<(), TrySendError<M>>
Attempt to send a message to the actor.
- In the case of an
unboundedChannel, any BackPressure is ignored. - In the case of a
boundedChannel, when it is full this fails.
For bounded channels, this method is the same as try_send.
sourcepub fn send(&self, msg: M) -> Snd<'_, M>ⓘNotable traits for Snd<'a, M>impl<'a, M> Future for Snd<'a, M> type Output = Result<(), SendError<M>>;
pub fn send(&self, msg: M) -> Snd<'_, M>ⓘNotable traits for Snd<'a, M>impl<'a, M> Future for Snd<'a, M> type Output = Result<(), SendError<M>>;
Attempt to send a message to the actor.
- In the case of an
unboundedChannel, when BackPressure returns a timeout this waits untill the timeout is over. - In the case of a
boundedChannel, when it is full this waits untill space is available.
Trait Implementations
sourceimpl<E: Debug, C: Debug> Debug for Child<E, C> where
E: Send + 'static,
C: DynChannel + ?Sized,
impl<E: Debug, C: Debug> Debug for Child<E, C> where
E: Send + 'static,
C: DynChannel + ?Sized,
impl<E: Send + 'static, C: DynChannel + ?Sized> Unpin for Child<E, C>
Auto Trait Implementations
impl<E, C: ?Sized> RefUnwindSafe for Child<E, C> where
C: RefUnwindSafe,
impl<E, C: ?Sized> Send for Child<E, C> where
C: Send + Sync,
impl<E, C: ?Sized> Sync for Child<E, C> where
C: Send + Sync,
impl<E, C: ?Sized> UnwindSafe for Child<E, C> where
C: RefUnwindSafe,
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
impl<T> FutureExt for T where
T: Future + ?Sized,
impl<T> FutureExt for T where
T: Future + ?Sized,
fn map<U, F>(self, f: F) -> Map<Self, F> where
F: FnOnce(Self::Output) -> U,
fn map<U, F>(self, f: F) -> Map<Self, F> where
F: FnOnce(Self::Output) -> U,
Map this future’s output to a different type, returning a new future of the resulting type. Read more
fn map_into<U>(self) -> MapInto<Self, U> where
Self::Output: Into<U>,
fn map_into<U>(self) -> MapInto<Self, U> where
Self::Output: Into<U>,
Map this future’s output to a different type, returning a new future of the resulting type. Read more
fn then<Fut, F>(self, f: F) -> Then<Self, Fut, F> where
F: FnOnce(Self::Output) -> Fut,
Fut: Future,
fn then<Fut, F>(self, f: F) -> Then<Self, Fut, F> where
F: FnOnce(Self::Output) -> Fut,
Fut: Future,
Chain on a computation for when a future finished, passing the result of
the future to the provided closure f. Read more
fn left_future<B>(self) -> Either<Self, B> where
B: Future<Output = Self::Output>,
fn left_future<B>(self) -> Either<Self, B> where
B: Future<Output = Self::Output>,
Wrap this future in an Either future, making it the left-hand variant
of that Either. Read more
fn right_future<A>(self) -> Either<A, Self> where
A: Future<Output = Self::Output>,
fn right_future<A>(self) -> Either<A, Self> where
A: Future<Output = Self::Output>,
Wrap this future in an Either future, making it the right-hand variant
of that Either. Read more
fn into_stream(self) -> IntoStream<Self>
fn into_stream(self) -> IntoStream<Self>
Convert this future into a single element stream. Read more
fn flatten(self) -> Flatten<Self> where
Self::Output: Future,
fn flatten(self) -> Flatten<Self> where
Self::Output: Future,
Flatten the execution of this future when the output of this future is itself another future. Read more
fn flatten_stream(self) -> FlattenStream<Self> where
Self::Output: Stream,
fn flatten_stream(self) -> FlattenStream<Self> where
Self::Output: Stream,
Flatten the execution of this future when the successful result of this future is a stream. Read more
fn fuse(self) -> Fuse<Self>
fn fuse(self) -> Fuse<Self>
Fuse a future such that poll will never again be called once it has
completed. This method can be used to turn any Future into a
FusedFuture. Read more
fn inspect<F>(self, f: F) -> Inspect<Self, F> where
F: FnOnce(&Self::Output),
fn inspect<F>(self, f: F) -> Inspect<Self, F> where
F: FnOnce(&Self::Output),
Do something with the output of a future before passing it on. Read more
fn catch_unwind(self) -> CatchUnwind<Self> where
Self: UnwindSafe,
fn catch_unwind(self) -> CatchUnwind<Self> where
Self: UnwindSafe,
Catches unwinding panics while polling the future. Read more
Create a cloneable handle to this future where all handles will resolve to the same result. Read more
fn remote_handle(self) -> (Remote<Self>, RemoteHandle<Self::Output>)
fn remote_handle(self) -> (Remote<Self>, RemoteHandle<Self::Output>)
Turn this future into a future that yields () on completion and sends
its output to another future on a separate task. Read more
fn boxed<'a>(
self
) -> Pin<Box<dyn Future<Output = Self::Output> + Send + 'a, Global>> where
Self: 'a + Send,
fn boxed<'a>(
self
) -> Pin<Box<dyn Future<Output = Self::Output> + Send + 'a, Global>> where
Self: 'a + Send,
Wrap the future in a Box, pinning it. Read more
fn boxed_local<'a>(
self
) -> Pin<Box<dyn Future<Output = Self::Output> + 'a, Global>> where
Self: 'a,
fn boxed_local<'a>(
self
) -> Pin<Box<dyn Future<Output = Self::Output> + 'a, Global>> where
Self: 'a,
Wrap the future in a Box, pinning it. Read more
fn unit_error(self) -> UnitError<Self>
fn unit_error(self) -> UnitError<Self>
Turns a Future<Output = T> into a
TryFuture<Ok = T, Error = ()>. Read more
fn never_error(self) -> NeverError<Self>
fn never_error(self) -> NeverError<Self>
Turns a Future<Output = T> into a
TryFuture<Ok = T, Error = Never>. Read more
fn poll_unpin(&mut self, cx: &mut Context<'_>) -> Poll<Self::Output> where
Self: Unpin,
fn poll_unpin(&mut self, cx: &mut Context<'_>) -> Poll<Self::Output> where
Self: Unpin,
A convenience for calling Future::poll on Unpin future types.
fn now_or_never(self) -> Option<Self::Output>
fn now_or_never(self) -> Option<Self::Output>
Evaluates and consumes the future, returning the resulting output if
the future is ready after the first call to Future::poll. Read more
sourceimpl<F> IntoFuture for F where
F: Future,
impl<F> IntoFuture for F where
F: Future,
type IntoFuture = F
type IntoFuture = F
Which kind of future are we turning this into?
sourcefn into_future(self) -> <F as IntoFuture>::IntoFuture
fn into_future(self) -> <F as IntoFuture>::IntoFuture
Creates a future from a value. Read more
impl<Fut> TryFutureExt for Fut where
Fut: TryFuture + ?Sized,
impl<Fut> TryFutureExt for Fut where
Fut: TryFuture + ?Sized,
fn flatten_sink<Item>(self) -> FlattenSink<Self, Self::Ok> where
Self::Ok: Sink<Item>,
<Self::Ok as Sink<Item>>::Error == Self::Error,
fn flatten_sink<Item>(self) -> FlattenSink<Self, Self::Ok> where
Self::Ok: Sink<Item>,
<Self::Ok as Sink<Item>>::Error == Self::Error,
Flattens the execution of this future when the successful result of this
future is a [Sink]. Read more
fn map_ok<T, F>(self, f: F) -> MapOk<Self, F> where
F: FnOnce(Self::Ok) -> T,
fn map_ok<T, F>(self, f: F) -> MapOk<Self, F> where
F: FnOnce(Self::Ok) -> T,
Maps this future’s success value to a different value. Read more
fn map_ok_or_else<T, E, F>(self, e: E, f: F) -> MapOkOrElse<Self, F, E> where
F: FnOnce(Self::Ok) -> T,
E: FnOnce(Self::Error) -> T,
fn map_ok_or_else<T, E, F>(self, e: E, f: F) -> MapOkOrElse<Self, F, E> where
F: FnOnce(Self::Ok) -> T,
E: FnOnce(Self::Error) -> T,
Maps this future’s success value to a different value, and permits for error handling resulting in the same type. Read more
fn map_err<E, F>(self, f: F) -> MapErr<Self, F> where
F: FnOnce(Self::Error) -> E,
fn map_err<E, F>(self, f: F) -> MapErr<Self, F> where
F: FnOnce(Self::Error) -> E,
Maps this future’s error value to a different value. Read more
fn and_then<Fut, F>(self, f: F) -> AndThen<Self, Fut, F> where
F: FnOnce(Self::Ok) -> Fut,
Fut: TryFuture<Error = Self::Error>,
fn and_then<Fut, F>(self, f: F) -> AndThen<Self, Fut, F> where
F: FnOnce(Self::Ok) -> Fut,
Fut: TryFuture<Error = Self::Error>,
Executes another future after this one resolves successfully. The success value is passed to a closure to create this subsequent future. Read more
fn or_else<Fut, F>(self, f: F) -> OrElse<Self, Fut, F> where
F: FnOnce(Self::Error) -> Fut,
Fut: TryFuture<Ok = Self::Ok>,
fn or_else<Fut, F>(self, f: F) -> OrElse<Self, Fut, F> where
F: FnOnce(Self::Error) -> Fut,
Fut: TryFuture<Ok = Self::Ok>,
Executes another future if this one resolves to an error. The error value is passed to a closure to create this subsequent future. Read more
fn inspect_ok<F>(self, f: F) -> InspectOk<Self, F> where
F: FnOnce(&Self::Ok),
fn inspect_ok<F>(self, f: F) -> InspectOk<Self, F> where
F: FnOnce(&Self::Ok),
Do something with the success value of a future before passing it on. Read more
fn inspect_err<F>(self, f: F) -> InspectErr<Self, F> where
F: FnOnce(&Self::Error),
fn inspect_err<F>(self, f: F) -> InspectErr<Self, F> where
F: FnOnce(&Self::Error),
Do something with the error value of a future before passing it on. Read more
fn try_flatten(self) -> TryFlatten<Self, Self::Ok> where
Self::Ok: TryFuture,
<Self::Ok as TryFuture>::Error == Self::Error,
fn try_flatten(self) -> TryFlatten<Self, Self::Ok> where
Self::Ok: TryFuture,
<Self::Ok as TryFuture>::Error == Self::Error,
Flatten the execution of this future when the successful result of this future is another future. Read more
fn try_flatten_stream(self) -> TryFlattenStream<Self> where
Self::Ok: TryStream,
<Self::Ok as TryStream>::Error == Self::Error,
fn try_flatten_stream(self) -> TryFlattenStream<Self> where
Self::Ok: TryStream,
<Self::Ok as TryStream>::Error == Self::Error,
Flatten the execution of this future when the successful result of this future is a stream. Read more