1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
use linux_ipc::IpcChannel;
use serde::{Deserialize, Serialize};

#[derive(Debug, Serialize, Deserialize)]
#[allow(dead_code)]
struct Post {
    title: String,
    body: String,
}

fn main() {
    println!("Creating example channel");
    let mut channel = IpcChannel::new("/tmp/example.sock").expect("Failed to create channel");

    loop {
        println!("Receiving post in channel `init`");
        let result = channel.receive::<Post>();

        if result.is_err() {
            eprintln!("{}", result.unwrap_err());
        } else {
            let result = result.unwrap();
            println!("{:?}", result);
        }
    }
}