[−][src]Function caspaxos_kv::simulate
pub fn simulate<T>(
lossiness: Option<u32>,
n_servers: usize,
client_factories: Vec<fn(_: Client) -> Task<T>>,
timeout: Option<Duration>
) -> Vec<T>
Run a simulation of a cluster of clients. Returns the result of running each client for possible verification purposes.
Examples
use caspaxos_kv::{simulate, Client}; use smol::Task; fn set_client(mut client: Client) -> Task<()> { Task::local(async move { let responses = client.ping().await; println!("majority pinger got {} responses", responses); let set = client.set(b"k1".to_vec(), b"v1".to_vec()).await; println!("set response: {:?}", set); }) } fn main() { color_backtrace::install(); let n_servers = 5; let n_clients = 15; // drop 1 in 10 messages let lossiness = Some(10); //let lossiness = None; let clients = vec![set_client as fn(Client) -> Task<_>; n_clients]; simulate(lossiness, n_servers, clients); }