This is unreleased documentation for Yew Next version.
For up-to-date documentation, see the latest version on docs.rs.

Module reactor

Source
Expand description

This module contains the reactor agent implementation.

Reactor agents are agents that receive multiple inputs and send multiple outputs over a single bridge. A reactor is defined as an async function that takes a ReactorScope as the argument.

The reactor scope is a stream that produces inputs from the bridge and a sink that implements an additional send method to send outputs to the connected bridge. When the bridge disconnects, the output stream and input sink will be closed.

§Example

use futures::sink::SinkExt;
use futures::stream::StreamExt;
use yew_agent::reactor::{reactor, ReactorScope};
#[reactor(MyReactor)]
pub async fn my_reactor(mut scope: ReactorScope<ReactorInput, ReactorOutput>) {
    while let Some(input) = scope.next().await {
        // handles each input.
        // ...

        // sends output
        if scope.send(output).await.is_err() {
            // sender closed, the bridge is disconnected
            break;
        }
    }
}

Structs§

ReactorBridge
A connection manager for components interaction with oneshot workers.
ReactorProvider
The Reactor Agent Provider.
ReactorRegistrar
A registrar for reactor workers.
ReactorScope
A handle to communicate with bridges.
ReactorSpawner
A spawner to create oneshot workers.
UseReactorBridgeHandle
Hook handle for the use_reactor_bridge hook.
UseReactorSubscriptionHandle
Hook handle for the use_reactor_subscription hook.

Enums§

ReactorEvent
A type that represents events from a reactor.

Traits§

Reactor
A reactor worker.
ReactorScoped
A helper trait to extract the input and output type from a [ReactorStream].

Functions§

use_reactor_bridge
A hook to bridge to a Reactor.
use_reactor_subscription
A hook to subscribe to the outputs of a Reactor agent.

Attribute Macros§

reactor
A procedural macro to create reactor agents.