swayipc_command_builder/commands/
workspace.rs

1use super::*;
2
3impl Command<Workspace> {
4    pub fn no_auto_back_and_forth(self) -> Command<Workspace<With>> {
5        self.push_str("--no-auto-back-and-forth").transmute()
6    }
7
8    pub fn goto(self) -> Command<Workspace<With>> {
9        self.transmute()
10    }
11
12    pub fn next(self) -> Command<Valid> {
13        self.push_str("next").transmute()
14    }
15
16    pub fn prev(self) -> Command<Valid> {
17        self.push_str("prev").transmute()
18    }
19
20    pub fn next_on_output(self) -> Command<Valid> {
21        self.push_str("next_on_output").transmute()
22    }
23
24    pub fn prev_on_output(self) -> Command<Valid> {
25        self.push_str("prev_on_output").transmute()
26    }
27
28    pub fn back_and_forth(self) -> Command<Valid> {
29        self.push_str("back_and_forth").transmute()
30    }
31
32    pub fn name(self, name: impl AsRef<str>) -> Command<Workspace<X>> {
33        self.push_str(name).transmute()
34    }
35}
36
37impl Command<Workspace<With>> {
38    pub fn name(self, name: impl AsRef<str>) -> Command<Valid> {
39        self.push_str(name).transmute()
40    }
41
42    pub fn number(self, number: isize) -> Command<Valid> {
43        self.push_str(number.to_string()).transmute()
44    }
45}
46
47impl Command<Workspace<X>> {
48    pub fn gaps(self) -> Command<Workspace<X<Gaps>>> {
49        self.transmute()
50    }
51
52    pub fn output(self, output: impl AsRef<str>) -> Command<Valid> {
53        self.push_str(output).transmute()
54    }
55}
56
57impl Command<Workspace<X<Gaps>>> {
58    pub fn inner(self) -> Command<Workspace<X<Gaps<By>>>> {
59        self.push_str("inner").transmute()
60    }
61
62    pub fn outer(self) -> Command<Workspace<X<Gaps<By>>>> {
63        self.push_str("outer").transmute()
64    }
65
66    pub fn horizontal(self) -> Command<Workspace<X<Gaps<By>>>> {
67        self.push_str("horizontal").transmute()
68    }
69
70    pub fn vertical(self) -> Command<Workspace<X<Gaps<By>>>> {
71        self.push_str("vertical").transmute()
72    }
73
74    pub fn top(self) -> Command<Workspace<X<Gaps<By>>>> {
75        self.push_str("top").transmute()
76    }
77
78    pub fn right(self) -> Command<Workspace<X<Gaps<By>>>> {
79        self.push_str("right").transmute()
80    }
81
82    pub fn bottom(self) -> Command<Workspace<X<Gaps<By>>>> {
83        self.push_str("bottom").transmute()
84    }
85
86    pub fn left(self) -> Command<Workspace<X<Gaps<By>>>> {
87        self.push_str("left").transmute()
88    }
89}
90
91impl Command<Workspace<X<Gaps<By>>>> {
92    pub fn amount(self, amount: usize) -> Command<Valid> {
93        self.push_str(amount.to_string()).transmute()
94    }
95}