main/
main.rs

1use libc::exit;
2use shell_server::{reg_shell_cmd, Server, Shell};
3
4fn print_hello() {
5    println!("Hello, world!");
6}
7
8fn add_two(a: i64, b: i64) -> i64 {
9    println!("{} + {} = {}", a, b, a + b);
10    a + b
11}
12
13fn print_str(s: &String) {
14    println!("{}", s);
15}
16
17fn add_seven(a: i64, b: i64, c: i64, d: i64, e: i64, f: i64, g: i64) -> i64 {
18    println!(
19        "{} + {} + {} + {} + {} + {} + {} = {}",
20        a,
21        b,
22        c,
23        d,
24        e,
25        f,
26        g,
27        a + b + c + d + e + f + g
28    );
29    a + b + c + d + e + f + g
30}
31
32fn get_self_pid() -> u64 {
33    std::process::id() as u64
34}
35
36fn main() {
37    let mut shell = Shell::new();
38
39    reg_shell_cmd!(shell,
40        {"hello", print_hello},
41        {"add_two", add_two},
42        {"print_str", print_str},
43        {"add_seven", add_seven},
44        {"run_exit", exit}
45    );
46
47    let pid = get_self_pid();
48
49    println!("pid: {}", pid);
50
51    match Server::new(
52        shell,
53        format!("/tmp/rust_shell_cmd_{}", pid),
54        format!("/tmp/rust_shell_output_{}", pid),
55    )
56    .run()
57    {
58        Ok(_) => (),
59        Err(err) => println!("run err: {}", err),
60    }
61}