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}