pub trait Service<Payload, Signal = (), RaftEntry = ()>: Sizedwhere
Payload: DeserializeOwned + Send + Clone + 'static + Debug,
Signal: Send + 'static,
RaftEntry: Clone + DeserializeOwned + Send + 'static + Debug,{
// Required methods
fn create(
network: &mut Network,
sender: Sender<Event<Payload, Signal, RaftEntry>>,
) -> Self;
fn step(
&mut self,
input: Event<Payload, Signal, RaftEntry>,
network: &mut Network,
) -> Result<()>;
// Provided method
fn run() -> Result<()> { ... }
}Required Methods§
fn create( network: &mut Network, sender: Sender<Event<Payload, Signal, RaftEntry>>, ) -> Self
fn step( &mut self, input: Event<Payload, Signal, RaftEntry>, network: &mut Network, ) -> Result<()>
Provided Methods§
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.