use easy_ipc::prelude::*;
use easy_ipc_derive::IpcModel;
use serde::{Deserialize, Serialize};
#[derive(Debug, Copy, Clone, IpcModel)]
#[easy_ipc(client_message = ClientMessage, server_message = ServerMessage)]
struct MyModel;
#[derive(Debug, PartialEq, Eq, Serialize, Deserialize)]
enum ServerMessage {
Ok,
Fail,
}
#[derive(Debug, PartialEq, Eq, Serialize, Deserialize)]
enum ClientMessage {
Start,
Stop,
}
fn main() {
let server = MyModel::server().unwrap();
let mut client = MyModel::client().unwrap();
let handle = std::thread::spawn(move || {
for conn in server.connections() {
let mut conn = conn.unwrap();
println!("{:?}", conn.receive().unwrap());
conn.send(ServerMessage::Ok).unwrap();
break;
}
});
client.send(ClientMessage::Start).unwrap();
println!("{:?}", client.receive().unwrap());
handle.join().unwrap();
}