[go: up one dir, main page]

Reactor

Trait Reactor 

Source
pub trait Reactor: Sized {
    type Peer: ToSocketAddrs;
    type Message: Serialize + DeserializeOwned;
    type Config;
    type Error;

    const PERIODIC_INTERVAL: Option<Duration> = None;

    // Required methods
    fn start(config: Self::Config) -> Result<Self, Self::Error>;
    fn receive(
        &mut self,
        from: Self::Peer,
        msg: Self::Message,
    ) -> Vec<(Self::Peer, Self::Message)>;

    // Provided method
    fn periodic(&mut self) -> Vec<(Self::Peer, Self::Message)> { ... }
}
Expand description

A trait for building networked systems that can be plugged into simulated networks and partition tested in accelerated time.

Provided Associated Constants§

Required Associated Types§

Required Methods§

Source

fn start(config: Self::Config) -> Result<Self, Self::Error>

Source

fn receive( &mut self, from: Self::Peer, msg: Self::Message, ) -> Vec<(Self::Peer, Self::Message)>

Provided Methods§

Source

fn periodic(&mut self) -> Vec<(Self::Peer, Self::Message)>

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§