use libeipc::EIPC_Server;
use rand::{thread_rng, Rng};
fn random_string(length: usize, allowed_chars: &str) -> String {
let mut rng = thread_rng();
(0..length)
.map(|_| {
let idx = rng.gen_range(0..allowed_chars.len());
allowed_chars.chars().nth(idx).unwrap()
})
.collect()
}
fn main() {
println!("EIPC_Server example running!");
let mut eipc_server = EIPC_Server::new("./example-socket", String::from("0123456789012345"));
eipc_server.set_message_handler(Box::new(|msg: &str, ppid: u32| -> String {
println!("Message received: {}", msg);
String::from("OK")
}));
eipc_server.set_handler("init", Box::new(|msg: &str, ppid: u32| -> String {
println!("Init event! Message: {}", msg);
String::from("OK")
}));
eipc_server.set_handler("update", Box::new(|msg: &str, ppid: u32| -> String {
println!("Update event! Message: {}", msg);
let allowed = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
let random_str = random_string(4098, allowed);
random_str
}));
eipc_server.open();
}