tmux_interface/commands/clients_and_sessions/
start_server_macro.rs1#[macro_export]
11macro_rules! start_server {
12 (@cmd ($cmd:expr)) => {{
16 $cmd
17 }};
18 () => {{
19 $crate::StartServer::new()
20 }};
21 (($cmd:expr), $($tail:tt)*) => {{
22 $crate::start_server!(@cmd ($cmd) $($tail)*,)
23 }};
24 ($($tail:tt)*) => {{
25 $crate::start_server!(@cmd ({ $crate::StartServer::new() }) $($tail)*,)
26 }};
27}
28
29#[test]
30fn start_server_macro() {
31 use std::borrow::Cow;
32
33 let start_server = start_server!();
43
44 #[cfg(not(feature = "cmd_alias"))]
45 let cmd = "start-server";
46 #[cfg(feature = "cmd_alias")]
47 let cmd = "start";
48
49 let mut s = Vec::new();
50 s.push(cmd);
51 let s: Vec<Cow<str>> = s.into_iter().map(|a| a.into()).collect();
52
53 let start_server = start_server.build().to_vec();
54
55 assert_eq!(start_server, s);
56}