tmux_interface/commands/buffers/
delete_buffer_macro.rs1#[macro_export]
24macro_rules! delete_buffer {
25 (@cmd ($cmd:expr) -b $buffer:expr, $($tail:tt)*) => {{
26 $crate::choose_buffer!(@cmd ({
27 #[cfg(feature = "tmux_2_0")]
28 {
29 $cmd.buffer_name($buffer)
30 }
31 #[cfg(all(feature = "tmux_1_5", not(feature = "tmux_2_0")))]
32 {
33 $cmd.buffer_index($buffer)
34 }
35 }) $($tail)*)
36 }};
37 (@cmd ($cmd:expr) -t $target_session:expr, $($tail:tt)*) => {{
38 $crate::choose_buffer!(@cmd ({
39 $cmd.target_session($target_session)
40 }) $($tail)*)
41 }};
42 (@cmd ($cmd:expr)) => {{
46 $cmd
47 }};
48 () => {{
49 $crate::DeleteBuffer::new()
50 }};
51 (($cmd:expr), $($tail:tt)*) => {{
52 $crate::delete_buffer!(@cmd ($cmd) $($tail)*,)
53 }};
54 ($($tail:tt)*) => {{
55 $crate::delete_buffer!(@cmd ({ $crate::DeleteBuffer::new() }) $($tail)*,)
56 }};
57}
58
59#[test]
60fn delete_buffer_macro() {
61 use crate::TargetPane;
62 use std::borrow::Cow;
63
64 let buffer_name = TargetPane::Raw("1").to_string();
87
88 let delete_buffer = delete_buffer!();
89 #[cfg(feature = "tmux_2_0")]
90 let delete_buffer = delete_buffer!((delete_buffer), -b buffer_name);
91 #[cfg(all(feature = "tmux_1_5", not(feature = "tmux_2_0")))]
92 let delete_buffer = delete_buffer!((delete_buffer), -b buffer_name);
93 #[cfg(all(feature = "tmux_0_8", not(feature = "tmux_1_5")))]
94 let delete_buffer = delete_buffer!((delete_buffer), -t buffer_name);
95
96 #[cfg(not(feature = "cmd_alias"))]
97 let cmd = "delete-buffer";
98 #[cfg(feature = "cmd_alias")]
99 let cmd = "deleteb";
100
101 let mut s = Vec::new();
102 s.push(cmd);
103
104 #[cfg(feature = "tmux_2_0")]
105 s.extend_from_slice(&["-b", "1"]);
106 #[cfg(all(feature = "tmux_1_5", not(feature = "tmux_2_0")))]
107 s.extend_from_slice(&["-b", "1"]);
108 #[cfg(all(feature = "tmux_0_8", not(feature = "tmux_1_5")))]
109 s.extend_from_slice(&["-t", "1"]);
110 let s: Vec<Cow<str>> = s.into_iter().map(|a| a.into()).collect();
111
112 let delete_buffer = delete_buffer.build().to_vec();
113
114 assert_eq!(delete_buffer, s);
115}