Skip to main content

zellij_utils/opt/rustwide/workdir/assets/prost/
api.action.rs

1#[allow(clippy::derive_partial_eq_without_eq)]
2#[derive(Clone, PartialEq, ::prost::Message)]
3pub struct PercentOrFixed {
4    #[prost(oneof="percent_or_fixed::SizeType", tags="1, 2")]
5    pub size_type: ::core::option::Option<percent_or_fixed::SizeType>,
6}
7/// Nested message and enum types in `PercentOrFixed`.
8pub mod percent_or_fixed {
9    #[allow(clippy::derive_partial_eq_without_eq)]
10#[derive(Clone, PartialEq, ::prost::Oneof)]
11    pub enum SizeType {
12        #[prost(uint32, tag="1")]
13        Percent(u32),
14        #[prost(uint32, tag="2")]
15        Fixed(u32),
16    }
17}
18#[allow(clippy::derive_partial_eq_without_eq)]
19#[derive(Clone, PartialEq, ::prost::Message)]
20pub struct LayoutConstraintWithValue {
21    #[prost(enumeration="LayoutConstraint", tag="1")]
22    pub constraint_type: i32,
23    #[prost(uint32, optional, tag="2")]
24    pub value: ::core::option::Option<u32>,
25}
26#[allow(clippy::derive_partial_eq_without_eq)]
27#[derive(Clone, PartialEq, ::prost::Message)]
28pub struct PluginUserConfiguration {
29    #[prost(map="string, string", tag="1")]
30    pub configuration: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
31}
32#[allow(clippy::derive_partial_eq_without_eq)]
33#[derive(Clone, PartialEq, ::prost::Message)]
34pub struct RunPluginLocationData {
35    #[prost(enumeration="RunPluginLocation", tag="1")]
36    pub location_type: i32,
37    #[prost(oneof="run_plugin_location_data::LocationData", tags="2, 3, 4")]
38    pub location_data: ::core::option::Option<run_plugin_location_data::LocationData>,
39}
40/// Nested message and enum types in `RunPluginLocationData`.
41pub mod run_plugin_location_data {
42    #[allow(clippy::derive_partial_eq_without_eq)]
43#[derive(Clone, PartialEq, ::prost::Oneof)]
44    pub enum LocationData {
45        #[prost(string, tag="2")]
46        FilePath(::prost::alloc::string::String),
47        #[prost(message, tag="3")]
48        ZellijTag(super::PluginTag),
49        #[prost(string, tag="4")]
50        RemoteUrl(::prost::alloc::string::String),
51    }
52}
53#[allow(clippy::derive_partial_eq_without_eq)]
54#[derive(Clone, PartialEq, ::prost::Message)]
55pub struct PluginTag {
56    #[prost(string, tag="1")]
57    pub tag: ::prost::alloc::string::String,
58}
59#[allow(clippy::derive_partial_eq_without_eq)]
60#[derive(Clone, PartialEq, ::prost::Message)]
61pub struct RunPlugin {
62    #[prost(bool, tag="1")]
63    pub allow_exec_host_cmd: bool,
64    #[prost(message, optional, tag="2")]
65    pub location: ::core::option::Option<RunPluginLocationData>,
66    #[prost(message, optional, tag="3")]
67    pub configuration: ::core::option::Option<PluginUserConfiguration>,
68    #[prost(string, optional, tag="4")]
69    pub initial_cwd: ::core::option::Option<::prost::alloc::string::String>,
70}
71#[allow(clippy::derive_partial_eq_without_eq)]
72#[derive(Clone, PartialEq, ::prost::Message)]
73pub struct PluginAlias {
74    #[prost(string, tag="1")]
75    pub name: ::prost::alloc::string::String,
76    #[prost(message, optional, tag="2")]
77    pub configuration: ::core::option::Option<PluginUserConfiguration>,
78    #[prost(string, optional, tag="3")]
79    pub initial_cwd: ::core::option::Option<::prost::alloc::string::String>,
80    #[prost(message, optional, tag="4")]
81    pub run_plugin: ::core::option::Option<RunPlugin>,
82}
83#[allow(clippy::derive_partial_eq_without_eq)]
84#[derive(Clone, PartialEq, ::prost::Message)]
85pub struct RunPluginOrAlias {
86    #[prost(oneof="run_plugin_or_alias::PluginType", tags="1, 2")]
87    pub plugin_type: ::core::option::Option<run_plugin_or_alias::PluginType>,
88}
89/// Nested message and enum types in `RunPluginOrAlias`.
90pub mod run_plugin_or_alias {
91    #[allow(clippy::derive_partial_eq_without_eq)]
92#[derive(Clone, PartialEq, ::prost::Oneof)]
93    pub enum PluginType {
94        #[prost(message, tag="1")]
95        Plugin(super::RunPlugin),
96        #[prost(message, tag="2")]
97        Alias(super::PluginAlias),
98    }
99}
100#[allow(clippy::derive_partial_eq_without_eq)]
101#[derive(Clone, PartialEq, ::prost::Message)]
102pub struct RunEditFileAction {
103    #[prost(string, tag="1")]
104    pub file_path: ::prost::alloc::string::String,
105    #[prost(uint32, optional, tag="2")]
106    pub line_number: ::core::option::Option<u32>,
107    #[prost(string, optional, tag="3")]
108    pub cwd: ::core::option::Option<::prost::alloc::string::String>,
109}
110#[allow(clippy::derive_partial_eq_without_eq)]
111#[derive(Clone, PartialEq, ::prost::Message)]
112pub struct PaneRun {
113    #[prost(oneof="pane_run::RunType", tags="1, 2, 3, 4")]
114    pub run_type: ::core::option::Option<pane_run::RunType>,
115}
116/// Nested message and enum types in `PaneRun`.
117pub mod pane_run {
118    #[allow(clippy::derive_partial_eq_without_eq)]
119#[derive(Clone, PartialEq, ::prost::Oneof)]
120    pub enum RunType {
121        #[prost(message, tag="1")]
122        Command(super::RunCommandAction),
123        #[prost(message, tag="2")]
124        Plugin(super::RunPluginOrAlias),
125        #[prost(message, tag="3")]
126        EditFile(super::RunEditFileAction),
127        #[prost(string, tag="4")]
128        Cwd(::prost::alloc::string::String),
129    }
130}
131#[allow(clippy::derive_partial_eq_without_eq)]
132#[derive(Clone, PartialEq, ::prost::Message)]
133pub struct TiledPaneLayout {
134    #[prost(enumeration="SplitDirection", tag="1")]
135    pub children_split_direction: i32,
136    #[prost(string, optional, tag="2")]
137    pub name: ::core::option::Option<::prost::alloc::string::String>,
138    #[prost(message, repeated, tag="3")]
139    pub children: ::prost::alloc::vec::Vec<TiledPaneLayout>,
140    #[prost(message, optional, tag="4")]
141    pub split_size: ::core::option::Option<SplitSize>,
142    #[prost(message, optional, tag="5")]
143    pub run: ::core::option::Option<PaneRun>,
144    #[prost(bool, tag="6")]
145    pub borderless: bool,
146    #[prost(string, optional, tag="7")]
147    pub focus: ::core::option::Option<::prost::alloc::string::String>,
148    #[prost(bool, optional, tag="8")]
149    pub exclude_from_sync: ::core::option::Option<bool>,
150    #[prost(bool, tag="9")]
151    pub children_are_stacked: bool,
152    #[prost(uint32, optional, tag="10")]
153    pub external_children_index: ::core::option::Option<u32>,
154    #[prost(bool, tag="11")]
155    pub is_expanded_in_stack: bool,
156    #[prost(bool, tag="12")]
157    pub hide_floating_panes: bool,
158    #[prost(string, optional, tag="13")]
159    pub pane_initial_contents: ::core::option::Option<::prost::alloc::string::String>,
160}
161#[allow(clippy::derive_partial_eq_without_eq)]
162#[derive(Clone, PartialEq, ::prost::Message)]
163pub struct FloatingPaneLayout {
164    #[prost(string, optional, tag="1")]
165    pub name: ::core::option::Option<::prost::alloc::string::String>,
166    #[prost(message, optional, tag="2")]
167    pub height: ::core::option::Option<PercentOrFixed>,
168    #[prost(message, optional, tag="3")]
169    pub width: ::core::option::Option<PercentOrFixed>,
170    #[prost(message, optional, tag="4")]
171    pub x: ::core::option::Option<PercentOrFixed>,
172    #[prost(message, optional, tag="5")]
173    pub y: ::core::option::Option<PercentOrFixed>,
174    #[prost(bool, optional, tag="6")]
175    pub pinned: ::core::option::Option<bool>,
176    #[prost(message, optional, tag="7")]
177    pub run: ::core::option::Option<PaneRun>,
178    #[prost(bool, optional, tag="8")]
179    pub focus: ::core::option::Option<bool>,
180    #[prost(bool, tag="9")]
181    pub already_running: bool,
182    #[prost(string, optional, tag="10")]
183    pub pane_initial_contents: ::core::option::Option<::prost::alloc::string::String>,
184    #[prost(uint32, optional, tag="11")]
185    pub logical_position: ::core::option::Option<u32>,
186    #[prost(bool, optional, tag="12")]
187    pub borderless: ::core::option::Option<bool>,
188}
189#[allow(clippy::derive_partial_eq_without_eq)]
190#[derive(Clone, PartialEq, ::prost::Message)]
191pub struct SwapTiledLayout {
192    #[prost(message, repeated, tag="1")]
193    pub constraint_map: ::prost::alloc::vec::Vec<LayoutConstraintTiledPair>,
194    #[prost(string, optional, tag="2")]
195    pub name: ::core::option::Option<::prost::alloc::string::String>,
196}
197#[allow(clippy::derive_partial_eq_without_eq)]
198#[derive(Clone, PartialEq, ::prost::Message)]
199pub struct SwapFloatingLayout {
200    #[prost(message, repeated, tag="1")]
201    pub constraint_map: ::prost::alloc::vec::Vec<LayoutConstraintFloatingPair>,
202    #[prost(string, optional, tag="2")]
203    pub name: ::core::option::Option<::prost::alloc::string::String>,
204}
205#[allow(clippy::derive_partial_eq_without_eq)]
206#[derive(Clone, PartialEq, ::prost::Message)]
207pub struct LayoutConstraintTiledPair {
208    #[prost(message, optional, tag="1")]
209    pub constraint: ::core::option::Option<LayoutConstraintWithValue>,
210    #[prost(message, optional, tag="2")]
211    pub layout: ::core::option::Option<TiledPaneLayout>,
212}
213#[allow(clippy::derive_partial_eq_without_eq)]
214#[derive(Clone, PartialEq, ::prost::Message)]
215pub struct LayoutConstraintFloatingPair {
216    #[prost(message, optional, tag="1")]
217    pub constraint: ::core::option::Option<LayoutConstraintWithValue>,
218    #[prost(message, repeated, tag="2")]
219    pub layouts: ::prost::alloc::vec::Vec<FloatingPaneLayout>,
220}
221#[allow(clippy::derive_partial_eq_without_eq)]
222#[derive(Clone, PartialEq, ::prost::Message)]
223pub struct CommandOrPluginFile {
224    #[prost(string, tag="1")]
225    pub path: ::prost::alloc::string::String,
226    #[prost(int32, optional, tag="2")]
227    pub line_number: ::core::option::Option<i32>,
228    #[prost(string, optional, tag="3")]
229    pub cwd: ::core::option::Option<::prost::alloc::string::String>,
230}
231#[allow(clippy::derive_partial_eq_without_eq)]
232#[derive(Clone, PartialEq, ::prost::Message)]
233pub struct CommandOrPlugin {
234    #[prost(oneof="command_or_plugin::CommandOrPluginType", tags="1, 2, 3")]
235    pub command_or_plugin_type: ::core::option::Option<command_or_plugin::CommandOrPluginType>,
236}
237/// Nested message and enum types in `CommandOrPlugin`.
238pub mod command_or_plugin {
239    #[allow(clippy::derive_partial_eq_without_eq)]
240#[derive(Clone, PartialEq, ::prost::Oneof)]
241    pub enum CommandOrPluginType {
242        #[prost(message, tag="1")]
243        Command(super::RunCommandAction),
244        #[prost(message, tag="2")]
245        Plugin(super::RunPluginOrAlias),
246        #[prost(message, tag="3")]
247        File(super::CommandOrPluginFile),
248    }
249}
250#[allow(clippy::derive_partial_eq_without_eq)]
251#[derive(Clone, PartialEq, ::prost::Message)]
252pub struct NewTabPayload {
253    #[prost(message, optional, tag="1")]
254    pub tiled_layout: ::core::option::Option<TiledPaneLayout>,
255    #[prost(message, repeated, tag="2")]
256    pub floating_layouts: ::prost::alloc::vec::Vec<FloatingPaneLayout>,
257    #[prost(message, repeated, tag="3")]
258    pub swap_tiled_layouts: ::prost::alloc::vec::Vec<SwapTiledLayout>,
259    #[prost(message, repeated, tag="4")]
260    pub swap_floating_layouts: ::prost::alloc::vec::Vec<SwapFloatingLayout>,
261    #[prost(string, optional, tag="5")]
262    pub tab_name: ::core::option::Option<::prost::alloc::string::String>,
263    #[prost(bool, tag="6")]
264    pub should_change_focus_to_new_tab: bool,
265    #[prost(string, optional, tag="7")]
266    pub cwd: ::core::option::Option<::prost::alloc::string::String>,
267    #[prost(message, repeated, tag="8")]
268    pub initial_panes: ::prost::alloc::vec::Vec<CommandOrPlugin>,
269    #[prost(enumeration="UnblockCondition", optional, tag="9")]
270    pub first_pane_unblock_condition: ::core::option::Option<i32>,
271}
272#[allow(clippy::derive_partial_eq_without_eq)]
273#[derive(Clone, PartialEq, ::prost::Message)]
274pub struct TabLayoutInfo {
275    #[prost(uint32, tag="1")]
276    pub tab_index: u32,
277    #[prost(string, optional, tag="2")]
278    pub tab_name: ::core::option::Option<::prost::alloc::string::String>,
279    #[prost(message, optional, tag="3")]
280    pub tiled_layout: ::core::option::Option<TiledPaneLayout>,
281    #[prost(message, repeated, tag="4")]
282    pub floating_layouts: ::prost::alloc::vec::Vec<FloatingPaneLayout>,
283    #[prost(message, repeated, tag="5")]
284    pub swap_tiled_layouts: ::prost::alloc::vec::Vec<SwapTiledLayout>,
285    #[prost(message, repeated, tag="6")]
286    pub swap_floating_layouts: ::prost::alloc::vec::Vec<SwapFloatingLayout>,
287}
288#[allow(clippy::derive_partial_eq_without_eq)]
289#[derive(Clone, PartialEq, ::prost::Message)]
290pub struct OverrideLayoutPayload {
291    #[prost(message, repeated, tag="1")]
292    pub tabs: ::prost::alloc::vec::Vec<TabLayoutInfo>,
293    #[prost(bool, tag="2")]
294    pub retain_existing_terminal_panes: bool,
295    #[prost(bool, tag="3")]
296    pub retain_existing_plugin_panes: bool,
297    #[prost(bool, tag="4")]
298    pub apply_only_to_active_tab: bool,
299}
300#[allow(clippy::derive_partial_eq_without_eq)]
301#[derive(Clone, PartialEq, ::prost::Message)]
302pub struct Action {
303    #[prost(enumeration="ActionName", tag="1")]
304    pub name: i32,
305    #[prost(oneof="action::OptionalPayload", tags="2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60")]
306    pub optional_payload: ::core::option::Option<action::OptionalPayload>,
307}
308/// Nested message and enum types in `Action`.
309pub mod action {
310    #[allow(clippy::derive_partial_eq_without_eq)]
311#[derive(Clone, PartialEq, ::prost::Oneof)]
312    pub enum OptionalPayload {
313        #[prost(message, tag="2")]
314        SwitchToModePayload(super::SwitchToModePayload),
315        #[prost(message, tag="3")]
316        WritePayload(super::WritePayload),
317        #[prost(message, tag="4")]
318        WriteCharsPayload(super::WriteCharsPayload),
319        #[prost(message, tag="5")]
320        SwitchModeForAllClientsPayload(super::SwitchToModePayload),
321        #[prost(message, tag="6")]
322        ResizePayload(super::super::resize::Resize),
323        #[prost(enumeration="super::super::resize::ResizeDirection", tag="7")]
324        MoveFocusPayload(i32),
325        #[prost(enumeration="super::super::resize::ResizeDirection", tag="8")]
326        MoveFocusOrTabPayload(i32),
327        #[prost(message, tag="9")]
328        MovePanePayload(super::MovePanePayload),
329        #[prost(message, tag="10")]
330        DumpScreenPayload(super::DumpScreenPayload),
331        #[prost(message, tag="11")]
332        ScrollUpAtPayload(super::ScrollAtPayload),
333        #[prost(message, tag="12")]
334        ScrollDownAtPayload(super::ScrollAtPayload),
335        #[prost(message, tag="13")]
336        NewPanePayload(super::NewPanePayload),
337        #[prost(message, tag="14")]
338        EditFilePayload(super::EditFilePayload),
339        #[prost(message, tag="15")]
340        NewFloatingPanePayload(super::NewFloatingPanePayload),
341        #[prost(message, tag="16")]
342        NewTiledPanePayload(super::NewTiledPanePayload),
343        #[prost(bytes, tag="17")]
344        PaneNameInputPayload(::prost::alloc::vec::Vec<u8>),
345        #[prost(uint32, tag="18")]
346        GoToTabPayload(u32),
347        #[prost(message, tag="19")]
348        GoToTabNamePayload(super::GoToTabNamePayload),
349        #[prost(bytes, tag="20")]
350        TabNameInputPayload(::prost::alloc::vec::Vec<u8>),
351        #[prost(message, tag="21")]
352        RunPayload(super::RunCommandAction),
353        #[prost(message, tag="22")]
354        LeftClickPayload(super::Position),
355        #[prost(message, tag="23")]
356        RightClickPayload(super::Position),
357        #[prost(message, tag="24")]
358        MiddleClickPayload(super::Position),
359        #[prost(message, tag="25")]
360        LaunchOrFocusPluginPayload(super::LaunchOrFocusPluginPayload),
361        #[prost(message, tag="26")]
362        LeftMouseReleasePayload(super::Position),
363        #[prost(message, tag="27")]
364        RightMouseReleasePayload(super::Position),
365        #[prost(message, tag="28")]
366        MiddleMouseReleasePayload(super::Position),
367        #[prost(bytes, tag="32")]
368        SearchInputPayload(::prost::alloc::vec::Vec<u8>),
369        #[prost(enumeration="super::SearchDirection", tag="33")]
370        SearchPayload(i32),
371        #[prost(enumeration="super::SearchOption", tag="34")]
372        SearchToggleOptionPayload(i32),
373        #[prost(message, tag="35")]
374        NewTiledPluginPanePayload(super::NewPluginPanePayload),
375        #[prost(message, tag="36")]
376        NewFloatingPluginPanePayload(super::NewPluginPanePayload),
377        #[prost(string, tag="37")]
378        StartOrReloadPluginPayload(::prost::alloc::string::String),
379        #[prost(uint32, tag="38")]
380        CloseTerminalPanePayload(u32),
381        #[prost(uint32, tag="39")]
382        ClosePluginPanePayload(u32),
383        #[prost(message, tag="40")]
384        FocusTerminalPaneWithIdPayload(super::PaneIdAndShouldFloat),
385        #[prost(message, tag="41")]
386        FocusPluginPaneWithIdPayload(super::PaneIdAndShouldFloat),
387        #[prost(message, tag="42")]
388        RenameTerminalPanePayload(super::IdAndName),
389        #[prost(message, tag="43")]
390        RenamePluginPanePayload(super::IdAndName),
391        #[prost(message, tag="44")]
392        RenameTabPayload(super::IdAndName),
393        #[prost(string, tag="45")]
394        RenameSessionPayload(::prost::alloc::string::String),
395        #[prost(message, tag="46")]
396        LaunchPluginPayload(super::LaunchOrFocusPluginPayload),
397        #[prost(message, tag="47")]
398        MessagePayload(super::CliPipePayload),
399        #[prost(enumeration="super::MoveTabDirection", tag="48")]
400        MoveTabPayload(i32),
401        #[prost(message, tag="49")]
402        MouseEventPayload(super::MouseEventPayload),
403        #[prost(message, tag="50")]
404        NewBlockingPanePayload(super::NewBlockingPanePayload),
405        #[prost(message, tag="51")]
406        NewTabPayload(super::NewTabPayload),
407        #[prost(message, tag="52")]
408        NewInPlacePanePayload(super::NewInPlacePanePayload),
409        #[prost(message, tag="53")]
410        OverrideLayoutPayload(super::OverrideLayoutPayload),
411        #[prost(message, tag="54")]
412        SetPaneBorderlessPayload(super::SetPaneBorderlessPayload),
413        #[prost(uint64, tag="55")]
414        GoToTabByIdPayload(u64),
415        #[prost(uint64, tag="56")]
416        CloseTabByIdPayload(u64),
417        #[prost(message, tag="57")]
418        RenameTabByIdPayload(super::TabIdAndName),
419        #[prost(message, tag="58")]
420        ShowFloatingPanesPayload(super::ShowFloatingPanesPayload),
421        #[prost(message, tag="59")]
422        HideFloatingPanesPayload(super::HideFloatingPanesPayload),
423        #[prost(message, tag="60")]
424        AreFloatingPanesVisiblePayload(super::AreFloatingPanesVisiblePayload),
425    }
426}
427#[allow(clippy::derive_partial_eq_without_eq)]
428#[derive(Clone, PartialEq, ::prost::Message)]
429pub struct CliPipePayload {
430    #[prost(string, optional, tag="1")]
431    pub name: ::core::option::Option<::prost::alloc::string::String>,
432    #[prost(string, tag="2")]
433    pub payload: ::prost::alloc::string::String,
434    #[prost(message, repeated, tag="3")]
435    pub args: ::prost::alloc::vec::Vec<NameAndValue>,
436    #[prost(string, optional, tag="4")]
437    pub plugin: ::core::option::Option<::prost::alloc::string::String>,
438}
439#[allow(clippy::derive_partial_eq_without_eq)]
440#[derive(Clone, PartialEq, ::prost::Message)]
441pub struct IdAndName {
442    #[prost(bytes="vec", tag="1")]
443    pub name: ::prost::alloc::vec::Vec<u8>,
444    #[prost(uint32, tag="2")]
445    pub id: u32,
446}
447#[allow(clippy::derive_partial_eq_without_eq)]
448#[derive(Clone, PartialEq, ::prost::Message)]
449pub struct TabIdAndName {
450    #[prost(uint64, tag="1")]
451    pub tab_id: u64,
452    #[prost(string, tag="2")]
453    pub name: ::prost::alloc::string::String,
454}
455#[allow(clippy::derive_partial_eq_without_eq)]
456#[derive(Clone, PartialEq, ::prost::Message)]
457pub struct ShowFloatingPanesPayload {
458    #[prost(uint32, optional, tag="1")]
459    pub tab_id: ::core::option::Option<u32>,
460}
461#[allow(clippy::derive_partial_eq_without_eq)]
462#[derive(Clone, PartialEq, ::prost::Message)]
463pub struct HideFloatingPanesPayload {
464    #[prost(uint32, optional, tag="1")]
465    pub tab_id: ::core::option::Option<u32>,
466}
467#[allow(clippy::derive_partial_eq_without_eq)]
468#[derive(Clone, PartialEq, ::prost::Message)]
469pub struct AreFloatingPanesVisiblePayload {
470    #[prost(uint32, optional, tag="1")]
471    pub tab_id: ::core::option::Option<u32>,
472}
473#[allow(clippy::derive_partial_eq_without_eq)]
474#[derive(Clone, PartialEq, ::prost::Message)]
475pub struct PaneIdAndShouldFloat {
476    #[prost(uint32, tag="1")]
477    pub pane_id: u32,
478    #[prost(bool, tag="2")]
479    pub should_float: bool,
480    #[prost(bool, tag="3")]
481    pub should_be_in_place: bool,
482}
483#[allow(clippy::derive_partial_eq_without_eq)]
484#[derive(Clone, PartialEq, ::prost::Message)]
485pub struct NewPluginPanePayload {
486    #[prost(string, tag="1")]
487    pub plugin_url: ::prost::alloc::string::String,
488    #[prost(string, optional, tag="2")]
489    pub pane_name: ::core::option::Option<::prost::alloc::string::String>,
490    #[prost(bool, tag="3")]
491    pub skip_plugin_cache: bool,
492}
493#[allow(clippy::derive_partial_eq_without_eq)]
494#[derive(Clone, PartialEq, ::prost::Message)]
495pub struct LaunchOrFocusPluginPayload {
496    #[prost(string, tag="1")]
497    pub plugin_url: ::prost::alloc::string::String,
498    #[prost(bool, tag="2")]
499    pub should_float: bool,
500    #[prost(message, optional, tag="3")]
501    pub plugin_configuration: ::core::option::Option<PluginConfiguration>,
502    #[prost(bool, tag="4")]
503    pub move_to_focused_tab: bool,
504    #[prost(bool, tag="5")]
505    pub should_open_in_place: bool,
506    #[prost(bool, tag="6")]
507    pub skip_plugin_cache: bool,
508}
509#[allow(clippy::derive_partial_eq_without_eq)]
510#[derive(Clone, PartialEq, ::prost::Message)]
511pub struct GoToTabNamePayload {
512    #[prost(string, tag="1")]
513    pub tab_name: ::prost::alloc::string::String,
514    #[prost(bool, tag="2")]
515    pub create: bool,
516}
517#[allow(clippy::derive_partial_eq_without_eq)]
518#[derive(Clone, PartialEq, ::prost::Message)]
519pub struct NewFloatingPanePayload {
520    #[prost(message, optional, tag="1")]
521    pub command: ::core::option::Option<RunCommandAction>,
522    #[prost(bool, tag="2")]
523    pub near_current_pane: bool,
524}
525#[allow(clippy::derive_partial_eq_without_eq)]
526#[derive(Clone, PartialEq, ::prost::Message)]
527pub struct NewTiledPanePayload {
528    #[prost(message, optional, tag="1")]
529    pub command: ::core::option::Option<RunCommandAction>,
530    #[prost(enumeration="super::resize::ResizeDirection", optional, tag="2")]
531    pub direction: ::core::option::Option<i32>,
532    #[prost(bool, tag="3")]
533    pub near_current_pane: bool,
534    #[prost(bool, optional, tag="4")]
535    pub borderless: ::core::option::Option<bool>,
536}
537#[allow(clippy::derive_partial_eq_without_eq)]
538#[derive(Clone, PartialEq, ::prost::Message)]
539pub struct MovePanePayload {
540    #[prost(enumeration="super::resize::ResizeDirection", optional, tag="1")]
541    pub direction: ::core::option::Option<i32>,
542}
543#[allow(clippy::derive_partial_eq_without_eq)]
544#[derive(Clone, PartialEq, ::prost::Message)]
545pub struct EditFilePayload {
546    #[prost(string, tag="1")]
547    pub file_to_edit: ::prost::alloc::string::String,
548    #[prost(uint32, optional, tag="2")]
549    pub line_number: ::core::option::Option<u32>,
550    #[prost(string, optional, tag="3")]
551    pub cwd: ::core::option::Option<::prost::alloc::string::String>,
552    #[prost(enumeration="super::resize::ResizeDirection", optional, tag="4")]
553    pub direction: ::core::option::Option<i32>,
554    #[prost(bool, tag="5")]
555    pub should_float: bool,
556    #[prost(bool, tag="6")]
557    pub near_current_pane: bool,
558}
559#[allow(clippy::derive_partial_eq_without_eq)]
560#[derive(Clone, PartialEq, ::prost::Message)]
561pub struct ScrollAtPayload {
562    #[prost(message, optional, tag="1")]
563    pub position: ::core::option::Option<Position>,
564}
565#[allow(clippy::derive_partial_eq_without_eq)]
566#[derive(Clone, PartialEq, ::prost::Message)]
567pub struct NewPanePayload {
568    #[prost(enumeration="super::resize::ResizeDirection", optional, tag="1")]
569    pub direction: ::core::option::Option<i32>,
570    #[prost(string, optional, tag="2")]
571    pub pane_name: ::core::option::Option<::prost::alloc::string::String>,
572}
573#[allow(clippy::derive_partial_eq_without_eq)]
574#[derive(Clone, PartialEq, ::prost::Message)]
575pub struct NewBlockingPanePayload {
576    #[prost(message, optional, tag="1")]
577    pub placement: ::core::option::Option<NewPanePlacement>,
578    #[prost(string, optional, tag="2")]
579    pub pane_name: ::core::option::Option<::prost::alloc::string::String>,
580    #[prost(message, optional, tag="3")]
581    pub command: ::core::option::Option<RunCommandAction>,
582    #[prost(enumeration="UnblockCondition", optional, tag="4")]
583    pub unblock_condition: ::core::option::Option<i32>,
584    #[prost(bool, tag="5")]
585    pub near_current_pane: bool,
586}
587#[allow(clippy::derive_partial_eq_without_eq)]
588#[derive(Clone, PartialEq, ::prost::Message)]
589pub struct NewInPlacePanePayload {
590    #[prost(message, optional, tag="1")]
591    pub command: ::core::option::Option<RunCommandAction>,
592    #[prost(string, optional, tag="2")]
593    pub pane_name: ::core::option::Option<::prost::alloc::string::String>,
594    #[prost(bool, tag="3")]
595    pub near_current_pane: bool,
596    #[prost(message, optional, tag="4")]
597    pub pane_id_to_replace: ::core::option::Option<PaneId>,
598    #[prost(bool, tag="5")]
599    pub close_replace_pane: bool,
600}
601#[allow(clippy::derive_partial_eq_without_eq)]
602#[derive(Clone, PartialEq, ::prost::Message)]
603pub struct SwitchToModePayload {
604    #[prost(enumeration="super::input_mode::InputMode", tag="1")]
605    pub input_mode: i32,
606}
607#[allow(clippy::derive_partial_eq_without_eq)]
608#[derive(Clone, PartialEq, ::prost::Message)]
609pub struct WritePayload {
610    #[prost(bytes="vec", tag="1")]
611    pub bytes_to_write: ::prost::alloc::vec::Vec<u8>,
612    #[prost(message, optional, tag="2")]
613    pub key_with_modifier: ::core::option::Option<KeyWithModifier>,
614    #[prost(bool, tag="3")]
615    pub is_kitty_keyboard_protocol: bool,
616}
617#[allow(clippy::derive_partial_eq_without_eq)]
618#[derive(Clone, PartialEq, ::prost::Message)]
619pub struct WriteCharsPayload {
620    #[prost(string, tag="1")]
621    pub chars: ::prost::alloc::string::String,
622}
623#[allow(clippy::derive_partial_eq_without_eq)]
624#[derive(Clone, PartialEq, ::prost::Message)]
625pub struct DumpScreenPayload {
626    #[prost(string, tag="1")]
627    pub file_path: ::prost::alloc::string::String,
628    #[prost(bool, tag="2")]
629    pub include_scrollback: bool,
630    #[prost(message, optional, tag="3")]
631    pub pane_id: ::core::option::Option<PaneId>,
632    #[prost(bool, tag="4")]
633    pub dump_to_stdout: bool,
634    #[prost(bool, tag="5")]
635    pub ansi: bool,
636}
637#[allow(clippy::derive_partial_eq_without_eq)]
638#[derive(Clone, PartialEq, ::prost::Message)]
639pub struct Position {
640    #[prost(int64, tag="1")]
641    pub line: i64,
642    #[prost(int64, tag="2")]
643    pub column: i64,
644}
645/// SplitSize represents a dimension that can be either a percentage or fixed size
646#[allow(clippy::derive_partial_eq_without_eq)]
647#[derive(Clone, PartialEq, ::prost::Message)]
648pub struct SplitSize {
649    #[prost(oneof="split_size::SplitSizeVariant", tags="1, 2")]
650    pub split_size_variant: ::core::option::Option<split_size::SplitSizeVariant>,
651}
652/// Nested message and enum types in `SplitSize`.
653pub mod split_size {
654    #[allow(clippy::derive_partial_eq_without_eq)]
655#[derive(Clone, PartialEq, ::prost::Oneof)]
656    pub enum SplitSizeVariant {
657        /// 1 to 100
658        #[prost(uint32, tag="1")]
659        Percent(u32),
660        /// absolute number of columns or rows
661        #[prost(uint32, tag="2")]
662        Fixed(u32),
663    }
664}
665/// PaneId identifies either a terminal or plugin pane
666#[allow(clippy::derive_partial_eq_without_eq)]
667#[derive(Clone, PartialEq, ::prost::Message)]
668pub struct PaneId {
669    #[prost(oneof="pane_id::PaneIdVariant", tags="1, 2")]
670    pub pane_id_variant: ::core::option::Option<pane_id::PaneIdVariant>,
671}
672/// Nested message and enum types in `PaneId`.
673pub mod pane_id {
674    #[allow(clippy::derive_partial_eq_without_eq)]
675#[derive(Clone, PartialEq, ::prost::Oneof)]
676    pub enum PaneIdVariant {
677        #[prost(uint32, tag="1")]
678        Terminal(u32),
679        #[prost(uint32, tag="2")]
680        Plugin(u32),
681    }
682}
683/// FloatingPaneCoordinates specifies the position and size of a floating pane
684#[allow(clippy::derive_partial_eq_without_eq)]
685#[derive(Clone, PartialEq, ::prost::Message)]
686pub struct FloatingPaneCoordinates {
687    #[prost(message, optional, tag="1")]
688    pub x: ::core::option::Option<SplitSize>,
689    #[prost(message, optional, tag="2")]
690    pub y: ::core::option::Option<SplitSize>,
691    #[prost(message, optional, tag="3")]
692    pub width: ::core::option::Option<SplitSize>,
693    #[prost(message, optional, tag="4")]
694    pub height: ::core::option::Option<SplitSize>,
695    #[prost(bool, optional, tag="5")]
696    pub pinned: ::core::option::Option<bool>,
697    #[prost(bool, optional, tag="6")]
698    pub borderless: ::core::option::Option<bool>,
699}
700/// SetPaneBorderlessPayload specifies the pane and borderless state
701#[allow(clippy::derive_partial_eq_without_eq)]
702#[derive(Clone, PartialEq, ::prost::Message)]
703pub struct SetPaneBorderlessPayload {
704    #[prost(message, optional, tag="1")]
705    pub pane_id: ::core::option::Option<PaneId>,
706    #[prost(bool, tag="2")]
707    pub borderless: bool,
708}
709/// NewPanePlacement specifies where a new pane should be placed
710#[allow(clippy::derive_partial_eq_without_eq)]
711#[derive(Clone, PartialEq, ::prost::Message)]
712pub struct NewPanePlacement {
713    #[prost(oneof="new_pane_placement::PlacementVariant", tags="1, 2, 3, 4, 5")]
714    pub placement_variant: ::core::option::Option<new_pane_placement::PlacementVariant>,
715}
716/// Nested message and enum types in `NewPanePlacement`.
717pub mod new_pane_placement {
718    #[allow(clippy::derive_partial_eq_without_eq)]
719#[derive(Clone, PartialEq, ::prost::Oneof)]
720    pub enum PlacementVariant {
721        #[prost(message, tag="1")]
722        NoPreference(super::NoPreferenceOptions),
723        #[prost(message, tag="2")]
724        Tiled(super::TiledPlacement),
725        #[prost(message, tag="3")]
726        Floating(super::FloatingPlacement),
727        #[prost(message, tag="4")]
728        InPlace(super::InPlaceConfig),
729        #[prost(message, tag="5")]
730        Stacked(super::StackedPlacement),
731    }
732}
733#[allow(clippy::derive_partial_eq_without_eq)]
734#[derive(Clone, PartialEq, ::prost::Message)]
735pub struct NoPreferenceOptions {
736    #[prost(bool, optional, tag="1")]
737    pub borderless: ::core::option::Option<bool>,
738}
739#[allow(clippy::derive_partial_eq_without_eq)]
740#[derive(Clone, PartialEq, ::prost::Message)]
741pub struct TiledPlacement {
742    #[prost(enumeration="super::resize::ResizeDirection", optional, tag="1")]
743    pub direction: ::core::option::Option<i32>,
744    #[prost(bool, optional, tag="2")]
745    pub borderless: ::core::option::Option<bool>,
746}
747#[allow(clippy::derive_partial_eq_without_eq)]
748#[derive(Clone, PartialEq, ::prost::Message)]
749pub struct FloatingPlacement {
750    #[prost(message, optional, tag="1")]
751    pub coordinates: ::core::option::Option<FloatingPaneCoordinates>,
752}
753#[allow(clippy::derive_partial_eq_without_eq)]
754#[derive(Clone, PartialEq, ::prost::Message)]
755pub struct InPlaceConfig {
756    #[prost(message, optional, tag="1")]
757    pub pane_id_to_replace: ::core::option::Option<PaneId>,
758    #[prost(bool, tag="2")]
759    pub close_replaced_pane: bool,
760    #[prost(bool, optional, tag="3")]
761    pub borderless: ::core::option::Option<bool>,
762}
763#[allow(clippy::derive_partial_eq_without_eq)]
764#[derive(Clone, PartialEq, ::prost::Message)]
765pub struct StackedPlacement {
766    #[prost(message, optional, tag="1")]
767    pub pane_id: ::core::option::Option<PaneId>,
768    #[prost(bool, optional, tag="2")]
769    pub borderless: ::core::option::Option<bool>,
770}
771#[allow(clippy::derive_partial_eq_without_eq)]
772#[derive(Clone, PartialEq, ::prost::Message)]
773pub struct MouseEventPayload {
774    #[prost(uint32, tag="1")]
775    pub event_type: u32,
776    #[prost(bool, tag="2")]
777    pub left: bool,
778    #[prost(bool, tag="3")]
779    pub right: bool,
780    #[prost(bool, tag="4")]
781    pub middle: bool,
782    #[prost(bool, tag="5")]
783    pub wheel_up: bool,
784    #[prost(bool, tag="6")]
785    pub wheel_down: bool,
786    #[prost(bool, tag="7")]
787    pub shift: bool,
788    #[prost(bool, tag="8")]
789    pub alt: bool,
790    #[prost(bool, tag="9")]
791    pub ctrl: bool,
792    #[prost(int64, tag="10")]
793    pub line: i64,
794    #[prost(int64, tag="11")]
795    pub column: i64,
796}
797#[allow(clippy::derive_partial_eq_without_eq)]
798#[derive(Clone, PartialEq, ::prost::Message)]
799pub struct RunCommandAction {
800    #[prost(string, tag="1")]
801    pub command: ::prost::alloc::string::String,
802    #[prost(string, repeated, tag="2")]
803    pub args: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
804    #[prost(string, optional, tag="3")]
805    pub cwd: ::core::option::Option<::prost::alloc::string::String>,
806    #[prost(enumeration="super::resize::ResizeDirection", optional, tag="4")]
807    pub direction: ::core::option::Option<i32>,
808    #[prost(string, optional, tag="5")]
809    pub pane_name: ::core::option::Option<::prost::alloc::string::String>,
810    #[prost(bool, tag="6")]
811    pub hold_on_close: bool,
812    #[prost(bool, tag="7")]
813    pub hold_on_start: bool,
814}
815#[allow(clippy::derive_partial_eq_without_eq)]
816#[derive(Clone, PartialEq, ::prost::Message)]
817pub struct PluginConfiguration {
818    #[prost(message, repeated, tag="1")]
819    pub name_and_value: ::prost::alloc::vec::Vec<NameAndValue>,
820}
821#[allow(clippy::derive_partial_eq_without_eq)]
822#[derive(Clone, PartialEq, ::prost::Message)]
823pub struct NameAndValue {
824    #[prost(string, tag="1")]
825    pub name: ::prost::alloc::string::String,
826    #[prost(string, tag="2")]
827    pub value: ::prost::alloc::string::String,
828}
829#[allow(clippy::derive_partial_eq_without_eq)]
830#[derive(Clone, PartialEq, ::prost::Message)]
831pub struct KeyWithModifier {
832    #[prost(enumeration="BareKey", tag="1")]
833    pub bare_key: i32,
834    #[prost(enumeration="KeyModifier", repeated, tag="2")]
835    pub key_modifiers: ::prost::alloc::vec::Vec<i32>,
836    /// Only set when bare_key is CHAR
837    #[prost(string, optional, tag="3")]
838    pub character: ::core::option::Option<::prost::alloc::string::String>,
839}
840// Layout and related types
841
842#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
843#[repr(i32)]
844pub enum SplitDirection {
845    Unspecified = 0,
846    Horizontal = 1,
847    Vertical = 2,
848}
849impl SplitDirection {
850    /// String value of the enum field names used in the ProtoBuf definition.
851    ///
852    /// The values are not transformed in any way and thus are considered stable
853    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
854    pub fn as_str_name(&self) -> &'static str {
855        match self {
856            SplitDirection::Unspecified => "SPLIT_DIRECTION_UNSPECIFIED",
857            SplitDirection::Horizontal => "SPLIT_DIRECTION_HORIZONTAL",
858            SplitDirection::Vertical => "SPLIT_DIRECTION_VERTICAL",
859        }
860    }
861    /// Creates an enum from field names used in the ProtoBuf definition.
862    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
863        match value {
864            "SPLIT_DIRECTION_UNSPECIFIED" => Some(Self::Unspecified),
865            "SPLIT_DIRECTION_HORIZONTAL" => Some(Self::Horizontal),
866            "SPLIT_DIRECTION_VERTICAL" => Some(Self::Vertical),
867            _ => None,
868        }
869    }
870}
871#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
872#[repr(i32)]
873pub enum LayoutConstraint {
874    Unspecified = 0,
875    MaxPanes = 1,
876    MinPanes = 2,
877    ExactPanes = 3,
878    NoConstraint = 4,
879}
880impl LayoutConstraint {
881    /// String value of the enum field names used in the ProtoBuf definition.
882    ///
883    /// The values are not transformed in any way and thus are considered stable
884    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
885    pub fn as_str_name(&self) -> &'static str {
886        match self {
887            LayoutConstraint::Unspecified => "LAYOUT_CONSTRAINT_UNSPECIFIED",
888            LayoutConstraint::MaxPanes => "LAYOUT_CONSTRAINT_MAX_PANES",
889            LayoutConstraint::MinPanes => "LAYOUT_CONSTRAINT_MIN_PANES",
890            LayoutConstraint::ExactPanes => "LAYOUT_CONSTRAINT_EXACT_PANES",
891            LayoutConstraint::NoConstraint => "LAYOUT_CONSTRAINT_NO_CONSTRAINT",
892        }
893    }
894    /// Creates an enum from field names used in the ProtoBuf definition.
895    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
896        match value {
897            "LAYOUT_CONSTRAINT_UNSPECIFIED" => Some(Self::Unspecified),
898            "LAYOUT_CONSTRAINT_MAX_PANES" => Some(Self::MaxPanes),
899            "LAYOUT_CONSTRAINT_MIN_PANES" => Some(Self::MinPanes),
900            "LAYOUT_CONSTRAINT_EXACT_PANES" => Some(Self::ExactPanes),
901            "LAYOUT_CONSTRAINT_NO_CONSTRAINT" => Some(Self::NoConstraint),
902            _ => None,
903        }
904    }
905}
906#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
907#[repr(i32)]
908pub enum RunPluginLocation {
909    Unspecified = 0,
910    File = 1,
911    Zellij = 2,
912    Remote = 3,
913}
914impl RunPluginLocation {
915    /// String value of the enum field names used in the ProtoBuf definition.
916    ///
917    /// The values are not transformed in any way and thus are considered stable
918    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
919    pub fn as_str_name(&self) -> &'static str {
920        match self {
921            RunPluginLocation::Unspecified => "RUN_PLUGIN_LOCATION_UNSPECIFIED",
922            RunPluginLocation::File => "RUN_PLUGIN_LOCATION_FILE",
923            RunPluginLocation::Zellij => "RUN_PLUGIN_LOCATION_ZELLIJ",
924            RunPluginLocation::Remote => "RUN_PLUGIN_LOCATION_REMOTE",
925        }
926    }
927    /// Creates an enum from field names used in the ProtoBuf definition.
928    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
929        match value {
930            "RUN_PLUGIN_LOCATION_UNSPECIFIED" => Some(Self::Unspecified),
931            "RUN_PLUGIN_LOCATION_FILE" => Some(Self::File),
932            "RUN_PLUGIN_LOCATION_ZELLIJ" => Some(Self::Zellij),
933            "RUN_PLUGIN_LOCATION_REMOTE" => Some(Self::Remote),
934            _ => None,
935        }
936    }
937}
938#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
939#[repr(i32)]
940pub enum SearchDirection {
941    Up = 0,
942    Down = 1,
943}
944impl SearchDirection {
945    /// String value of the enum field names used in the ProtoBuf definition.
946    ///
947    /// The values are not transformed in any way and thus are considered stable
948    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
949    pub fn as_str_name(&self) -> &'static str {
950        match self {
951            SearchDirection::Up => "Up",
952            SearchDirection::Down => "Down",
953        }
954    }
955    /// Creates an enum from field names used in the ProtoBuf definition.
956    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
957        match value {
958            "Up" => Some(Self::Up),
959            "Down" => Some(Self::Down),
960            _ => None,
961        }
962    }
963}
964#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
965#[repr(i32)]
966pub enum SearchOption {
967    CaseSensitivity = 0,
968    WholeWord = 1,
969    Wrap = 2,
970}
971impl SearchOption {
972    /// String value of the enum field names used in the ProtoBuf definition.
973    ///
974    /// The values are not transformed in any way and thus are considered stable
975    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
976    pub fn as_str_name(&self) -> &'static str {
977        match self {
978            SearchOption::CaseSensitivity => "CaseSensitivity",
979            SearchOption::WholeWord => "WholeWord",
980            SearchOption::Wrap => "Wrap",
981        }
982    }
983    /// Creates an enum from field names used in the ProtoBuf definition.
984    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
985        match value {
986            "CaseSensitivity" => Some(Self::CaseSensitivity),
987            "WholeWord" => Some(Self::WholeWord),
988            "Wrap" => Some(Self::Wrap),
989            _ => None,
990        }
991    }
992}
993#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
994#[repr(i32)]
995pub enum MoveTabDirection {
996    Left = 0,
997    Right = 1,
998}
999impl MoveTabDirection {
1000    /// String value of the enum field names used in the ProtoBuf definition.
1001    ///
1002    /// The values are not transformed in any way and thus are considered stable
1003    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
1004    pub fn as_str_name(&self) -> &'static str {
1005        match self {
1006            MoveTabDirection::Left => "Left",
1007            MoveTabDirection::Right => "Right",
1008        }
1009    }
1010    /// Creates an enum from field names used in the ProtoBuf definition.
1011    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1012        match value {
1013            "Left" => Some(Self::Left),
1014            "Right" => Some(Self::Right),
1015            _ => None,
1016        }
1017    }
1018}
1019#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1020#[repr(i32)]
1021pub enum ActionName {
1022    Quit = 0,
1023    Write = 1,
1024    WriteChars = 2,
1025    SwitchToMode = 3,
1026    SwitchModeForAllClients = 4,
1027    Resize = 5,
1028    FocusNextPane = 6,
1029    FocusPreviousPane = 7,
1030    SwitchFocus = 8,
1031    MoveFocus = 9,
1032    MoveFocusOrTab = 10,
1033    MovePane = 11,
1034    MovePaneBackwards = 12,
1035    ClearScreen = 13,
1036    DumpScreen = 14,
1037    EditScrollback = 15,
1038    ScrollUp = 16,
1039    ScrollUpAt = 17,
1040    ScrollDown = 18,
1041    ScrollDownAt = 19,
1042    ScrollToBottom = 20,
1043    ScrollToTop = 21,
1044    PageScrollUp = 22,
1045    PageScrollDown = 23,
1046    HalfPageScrollUp = 24,
1047    HalfPageScrollDown = 25,
1048    ToggleFocusFullscreen = 26,
1049    TogglePaneFrames = 27,
1050    ToggleActiveSyncTab = 28,
1051    NewPane = 29,
1052    EditFile = 30,
1053    NewFloatingPane = 31,
1054    NewTiledPane = 32,
1055    TogglePaneEmbedOrFloating = 33,
1056    ToggleFloatingPanes = 34,
1057    CloseFocus = 35,
1058    PaneNameInput = 36,
1059    UndoRenamePane = 37,
1060    NewTab = 38,
1061    NoOp = 39,
1062    GoToNextTab = 40,
1063    GoToPreviousTab = 41,
1064    CloseTab = 42,
1065    GoToTab = 43,
1066    GoToTabName = 44,
1067    ToggleTab = 45,
1068    TabNameInput = 46,
1069    UndoRenameTab = 47,
1070    Run = 48,
1071    Detach = 49,
1072    LeftClick = 50,
1073    RightClick = 51,
1074    MiddleClick = 52,
1075    LaunchOrFocusPlugin = 53,
1076    LeftMouseRelease = 54,
1077    RightMouseRelease = 55,
1078    MiddleMouseRelease = 56,
1079    SearchInput = 60,
1080    Search = 61,
1081    SearchToggleOption = 62,
1082    ToggleMouseMode = 63,
1083    PreviousSwapLayout = 64,
1084    NextSwapLayout = 65,
1085    QueryTabNames = 66,
1086    NewTiledPluginPane = 67,
1087    NewFloatingPluginPane = 68,
1088    StartOrReloadPlugin = 69,
1089    CloseTerminalPane = 70,
1090    ClosePluginPane = 71,
1091    FocusTerminalPaneWithId = 72,
1092    FocusPluginPaneWithId = 73,
1093    RenameTerminalPane = 74,
1094    RenamePluginPane = 75,
1095    RenameTab = 76,
1096    BreakPane = 77,
1097    BreakPaneRight = 78,
1098    BreakPaneLeft = 79,
1099    RenameSession = 80,
1100    LaunchPlugin = 81,
1101    CliPipe = 82,
1102    MoveTab = 83,
1103    KeybindPipe = 84,
1104    TogglePanePinned = 85,
1105    MouseEvent = 86,
1106    TogglePaneInGroup = 87,
1107    ToggleGroupMarking = 88,
1108    NewStackedPane = 89,
1109    SwitchSession = 90,
1110    NewBlockingPane = 91,
1111    NewInPlacePane = 92,
1112    OverrideLayout = 93,
1113    SetPaneBorderless = 94,
1114    GoToTabById = 95,
1115    CloseTabById = 96,
1116    RenameTabById = 97,
1117    ShowFloatingPanes = 98,
1118    HideFloatingPanes = 99,
1119    AreFloatingPanesVisible = 100,
1120}
1121impl ActionName {
1122    /// String value of the enum field names used in the ProtoBuf definition.
1123    ///
1124    /// The values are not transformed in any way and thus are considered stable
1125    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
1126    pub fn as_str_name(&self) -> &'static str {
1127        match self {
1128            ActionName::Quit => "Quit",
1129            ActionName::Write => "Write",
1130            ActionName::WriteChars => "WriteChars",
1131            ActionName::SwitchToMode => "SwitchToMode",
1132            ActionName::SwitchModeForAllClients => "SwitchModeForAllClients",
1133            ActionName::Resize => "Resize",
1134            ActionName::FocusNextPane => "FocusNextPane",
1135            ActionName::FocusPreviousPane => "FocusPreviousPane",
1136            ActionName::SwitchFocus => "SwitchFocus",
1137            ActionName::MoveFocus => "MoveFocus",
1138            ActionName::MoveFocusOrTab => "MoveFocusOrTab",
1139            ActionName::MovePane => "MovePane",
1140            ActionName::MovePaneBackwards => "MovePaneBackwards",
1141            ActionName::ClearScreen => "ClearScreen",
1142            ActionName::DumpScreen => "DumpScreen",
1143            ActionName::EditScrollback => "EditScrollback",
1144            ActionName::ScrollUp => "ScrollUp",
1145            ActionName::ScrollUpAt => "ScrollUpAt",
1146            ActionName::ScrollDown => "ScrollDown",
1147            ActionName::ScrollDownAt => "ScrollDownAt",
1148            ActionName::ScrollToBottom => "ScrollToBottom",
1149            ActionName::ScrollToTop => "ScrollToTop",
1150            ActionName::PageScrollUp => "PageScrollUp",
1151            ActionName::PageScrollDown => "PageScrollDown",
1152            ActionName::HalfPageScrollUp => "HalfPageScrollUp",
1153            ActionName::HalfPageScrollDown => "HalfPageScrollDown",
1154            ActionName::ToggleFocusFullscreen => "ToggleFocusFullscreen",
1155            ActionName::TogglePaneFrames => "TogglePaneFrames",
1156            ActionName::ToggleActiveSyncTab => "ToggleActiveSyncTab",
1157            ActionName::NewPane => "NewPane",
1158            ActionName::EditFile => "EditFile",
1159            ActionName::NewFloatingPane => "NewFloatingPane",
1160            ActionName::NewTiledPane => "NewTiledPane",
1161            ActionName::TogglePaneEmbedOrFloating => "TogglePaneEmbedOrFloating",
1162            ActionName::ToggleFloatingPanes => "ToggleFloatingPanes",
1163            ActionName::CloseFocus => "CloseFocus",
1164            ActionName::PaneNameInput => "PaneNameInput",
1165            ActionName::UndoRenamePane => "UndoRenamePane",
1166            ActionName::NewTab => "NewTab",
1167            ActionName::NoOp => "NoOp",
1168            ActionName::GoToNextTab => "GoToNextTab",
1169            ActionName::GoToPreviousTab => "GoToPreviousTab",
1170            ActionName::CloseTab => "CloseTab",
1171            ActionName::GoToTab => "GoToTab",
1172            ActionName::GoToTabName => "GoToTabName",
1173            ActionName::ToggleTab => "ToggleTab",
1174            ActionName::TabNameInput => "TabNameInput",
1175            ActionName::UndoRenameTab => "UndoRenameTab",
1176            ActionName::Run => "Run",
1177            ActionName::Detach => "Detach",
1178            ActionName::LeftClick => "LeftClick",
1179            ActionName::RightClick => "RightClick",
1180            ActionName::MiddleClick => "MiddleClick",
1181            ActionName::LaunchOrFocusPlugin => "LaunchOrFocusPlugin",
1182            ActionName::LeftMouseRelease => "LeftMouseRelease",
1183            ActionName::RightMouseRelease => "RightMouseRelease",
1184            ActionName::MiddleMouseRelease => "MiddleMouseRelease",
1185            ActionName::SearchInput => "SearchInput",
1186            ActionName::Search => "Search",
1187            ActionName::SearchToggleOption => "SearchToggleOption",
1188            ActionName::ToggleMouseMode => "ToggleMouseMode",
1189            ActionName::PreviousSwapLayout => "PreviousSwapLayout",
1190            ActionName::NextSwapLayout => "NextSwapLayout",
1191            ActionName::QueryTabNames => "QueryTabNames",
1192            ActionName::NewTiledPluginPane => "NewTiledPluginPane",
1193            ActionName::NewFloatingPluginPane => "NewFloatingPluginPane",
1194            ActionName::StartOrReloadPlugin => "StartOrReloadPlugin",
1195            ActionName::CloseTerminalPane => "CloseTerminalPane",
1196            ActionName::ClosePluginPane => "ClosePluginPane",
1197            ActionName::FocusTerminalPaneWithId => "FocusTerminalPaneWithId",
1198            ActionName::FocusPluginPaneWithId => "FocusPluginPaneWithId",
1199            ActionName::RenameTerminalPane => "RenameTerminalPane",
1200            ActionName::RenamePluginPane => "RenamePluginPane",
1201            ActionName::RenameTab => "RenameTab",
1202            ActionName::BreakPane => "BreakPane",
1203            ActionName::BreakPaneRight => "BreakPaneRight",
1204            ActionName::BreakPaneLeft => "BreakPaneLeft",
1205            ActionName::RenameSession => "RenameSession",
1206            ActionName::LaunchPlugin => "LaunchPlugin",
1207            ActionName::CliPipe => "CliPipe",
1208            ActionName::MoveTab => "MoveTab",
1209            ActionName::KeybindPipe => "KeybindPipe",
1210            ActionName::TogglePanePinned => "TogglePanePinned",
1211            ActionName::MouseEvent => "MouseEvent",
1212            ActionName::TogglePaneInGroup => "TogglePaneInGroup",
1213            ActionName::ToggleGroupMarking => "ToggleGroupMarking",
1214            ActionName::NewStackedPane => "NewStackedPane",
1215            ActionName::SwitchSession => "SwitchSession",
1216            ActionName::NewBlockingPane => "NewBlockingPane",
1217            ActionName::NewInPlacePane => "NewInPlacePane",
1218            ActionName::OverrideLayout => "OverrideLayout",
1219            ActionName::SetPaneBorderless => "SetPaneBorderless",
1220            ActionName::GoToTabById => "GoToTabById",
1221            ActionName::CloseTabById => "CloseTabById",
1222            ActionName::RenameTabById => "RenameTabById",
1223            ActionName::ShowFloatingPanes => "ShowFloatingPanes",
1224            ActionName::HideFloatingPanes => "HideFloatingPanes",
1225            ActionName::AreFloatingPanesVisible => "AreFloatingPanesVisible",
1226        }
1227    }
1228    /// Creates an enum from field names used in the ProtoBuf definition.
1229    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1230        match value {
1231            "Quit" => Some(Self::Quit),
1232            "Write" => Some(Self::Write),
1233            "WriteChars" => Some(Self::WriteChars),
1234            "SwitchToMode" => Some(Self::SwitchToMode),
1235            "SwitchModeForAllClients" => Some(Self::SwitchModeForAllClients),
1236            "Resize" => Some(Self::Resize),
1237            "FocusNextPane" => Some(Self::FocusNextPane),
1238            "FocusPreviousPane" => Some(Self::FocusPreviousPane),
1239            "SwitchFocus" => Some(Self::SwitchFocus),
1240            "MoveFocus" => Some(Self::MoveFocus),
1241            "MoveFocusOrTab" => Some(Self::MoveFocusOrTab),
1242            "MovePane" => Some(Self::MovePane),
1243            "MovePaneBackwards" => Some(Self::MovePaneBackwards),
1244            "ClearScreen" => Some(Self::ClearScreen),
1245            "DumpScreen" => Some(Self::DumpScreen),
1246            "EditScrollback" => Some(Self::EditScrollback),
1247            "ScrollUp" => Some(Self::ScrollUp),
1248            "ScrollUpAt" => Some(Self::ScrollUpAt),
1249            "ScrollDown" => Some(Self::ScrollDown),
1250            "ScrollDownAt" => Some(Self::ScrollDownAt),
1251            "ScrollToBottom" => Some(Self::ScrollToBottom),
1252            "ScrollToTop" => Some(Self::ScrollToTop),
1253            "PageScrollUp" => Some(Self::PageScrollUp),
1254            "PageScrollDown" => Some(Self::PageScrollDown),
1255            "HalfPageScrollUp" => Some(Self::HalfPageScrollUp),
1256            "HalfPageScrollDown" => Some(Self::HalfPageScrollDown),
1257            "ToggleFocusFullscreen" => Some(Self::ToggleFocusFullscreen),
1258            "TogglePaneFrames" => Some(Self::TogglePaneFrames),
1259            "ToggleActiveSyncTab" => Some(Self::ToggleActiveSyncTab),
1260            "NewPane" => Some(Self::NewPane),
1261            "EditFile" => Some(Self::EditFile),
1262            "NewFloatingPane" => Some(Self::NewFloatingPane),
1263            "NewTiledPane" => Some(Self::NewTiledPane),
1264            "TogglePaneEmbedOrFloating" => Some(Self::TogglePaneEmbedOrFloating),
1265            "ToggleFloatingPanes" => Some(Self::ToggleFloatingPanes),
1266            "CloseFocus" => Some(Self::CloseFocus),
1267            "PaneNameInput" => Some(Self::PaneNameInput),
1268            "UndoRenamePane" => Some(Self::UndoRenamePane),
1269            "NewTab" => Some(Self::NewTab),
1270            "NoOp" => Some(Self::NoOp),
1271            "GoToNextTab" => Some(Self::GoToNextTab),
1272            "GoToPreviousTab" => Some(Self::GoToPreviousTab),
1273            "CloseTab" => Some(Self::CloseTab),
1274            "GoToTab" => Some(Self::GoToTab),
1275            "GoToTabName" => Some(Self::GoToTabName),
1276            "ToggleTab" => Some(Self::ToggleTab),
1277            "TabNameInput" => Some(Self::TabNameInput),
1278            "UndoRenameTab" => Some(Self::UndoRenameTab),
1279            "Run" => Some(Self::Run),
1280            "Detach" => Some(Self::Detach),
1281            "LeftClick" => Some(Self::LeftClick),
1282            "RightClick" => Some(Self::RightClick),
1283            "MiddleClick" => Some(Self::MiddleClick),
1284            "LaunchOrFocusPlugin" => Some(Self::LaunchOrFocusPlugin),
1285            "LeftMouseRelease" => Some(Self::LeftMouseRelease),
1286            "RightMouseRelease" => Some(Self::RightMouseRelease),
1287            "MiddleMouseRelease" => Some(Self::MiddleMouseRelease),
1288            "SearchInput" => Some(Self::SearchInput),
1289            "Search" => Some(Self::Search),
1290            "SearchToggleOption" => Some(Self::SearchToggleOption),
1291            "ToggleMouseMode" => Some(Self::ToggleMouseMode),
1292            "PreviousSwapLayout" => Some(Self::PreviousSwapLayout),
1293            "NextSwapLayout" => Some(Self::NextSwapLayout),
1294            "QueryTabNames" => Some(Self::QueryTabNames),
1295            "NewTiledPluginPane" => Some(Self::NewTiledPluginPane),
1296            "NewFloatingPluginPane" => Some(Self::NewFloatingPluginPane),
1297            "StartOrReloadPlugin" => Some(Self::StartOrReloadPlugin),
1298            "CloseTerminalPane" => Some(Self::CloseTerminalPane),
1299            "ClosePluginPane" => Some(Self::ClosePluginPane),
1300            "FocusTerminalPaneWithId" => Some(Self::FocusTerminalPaneWithId),
1301            "FocusPluginPaneWithId" => Some(Self::FocusPluginPaneWithId),
1302            "RenameTerminalPane" => Some(Self::RenameTerminalPane),
1303            "RenamePluginPane" => Some(Self::RenamePluginPane),
1304            "RenameTab" => Some(Self::RenameTab),
1305            "BreakPane" => Some(Self::BreakPane),
1306            "BreakPaneRight" => Some(Self::BreakPaneRight),
1307            "BreakPaneLeft" => Some(Self::BreakPaneLeft),
1308            "RenameSession" => Some(Self::RenameSession),
1309            "LaunchPlugin" => Some(Self::LaunchPlugin),
1310            "CliPipe" => Some(Self::CliPipe),
1311            "MoveTab" => Some(Self::MoveTab),
1312            "KeybindPipe" => Some(Self::KeybindPipe),
1313            "TogglePanePinned" => Some(Self::TogglePanePinned),
1314            "MouseEvent" => Some(Self::MouseEvent),
1315            "TogglePaneInGroup" => Some(Self::TogglePaneInGroup),
1316            "ToggleGroupMarking" => Some(Self::ToggleGroupMarking),
1317            "NewStackedPane" => Some(Self::NewStackedPane),
1318            "SwitchSession" => Some(Self::SwitchSession),
1319            "NewBlockingPane" => Some(Self::NewBlockingPane),
1320            "NewInPlacePane" => Some(Self::NewInPlacePane),
1321            "OverrideLayout" => Some(Self::OverrideLayout),
1322            "SetPaneBorderless" => Some(Self::SetPaneBorderless),
1323            "GoToTabById" => Some(Self::GoToTabById),
1324            "CloseTabById" => Some(Self::CloseTabById),
1325            "RenameTabById" => Some(Self::RenameTabById),
1326            "ShowFloatingPanes" => Some(Self::ShowFloatingPanes),
1327            "HideFloatingPanes" => Some(Self::HideFloatingPanes),
1328            "AreFloatingPanesVisible" => Some(Self::AreFloatingPanesVisible),
1329            _ => None,
1330        }
1331    }
1332}
1333/// UnblockCondition specifies when a blocking pane should unblock
1334#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1335#[repr(i32)]
1336pub enum UnblockCondition {
1337    UnblockOnExitSuccess = 0,
1338    UnblockOnExitFailure = 1,
1339    UnblockOnAnyExit = 2,
1340}
1341impl UnblockCondition {
1342    /// String value of the enum field names used in the ProtoBuf definition.
1343    ///
1344    /// The values are not transformed in any way and thus are considered stable
1345    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
1346    pub fn as_str_name(&self) -> &'static str {
1347        match self {
1348            UnblockCondition::UnblockOnExitSuccess => "UNBLOCK_ON_EXIT_SUCCESS",
1349            UnblockCondition::UnblockOnExitFailure => "UNBLOCK_ON_EXIT_FAILURE",
1350            UnblockCondition::UnblockOnAnyExit => "UNBLOCK_ON_ANY_EXIT",
1351        }
1352    }
1353    /// Creates an enum from field names used in the ProtoBuf definition.
1354    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1355        match value {
1356            "UNBLOCK_ON_EXIT_SUCCESS" => Some(Self::UnblockOnExitSuccess),
1357            "UNBLOCK_ON_EXIT_FAILURE" => Some(Self::UnblockOnExitFailure),
1358            "UNBLOCK_ON_ANY_EXIT" => Some(Self::UnblockOnAnyExit),
1359            _ => None,
1360        }
1361    }
1362}
1363#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1364#[repr(i32)]
1365pub enum BareKey {
1366    Unspecified = 0,
1367    PageDown = 1,
1368    PageUp = 2,
1369    Left = 3,
1370    Down = 4,
1371    Up = 5,
1372    Right = 6,
1373    Home = 7,
1374    End = 8,
1375    Backspace = 9,
1376    Delete = 10,
1377    Insert = 11,
1378    F1 = 12,
1379    F2 = 13,
1380    F3 = 14,
1381    F4 = 15,
1382    F5 = 16,
1383    F6 = 17,
1384    F7 = 18,
1385    F8 = 19,
1386    F9 = 20,
1387    F10 = 21,
1388    F11 = 22,
1389    F12 = 23,
1390    Char = 24,
1391    Tab = 25,
1392    Esc = 26,
1393    Enter = 27,
1394    CapsLock = 28,
1395    ScrollLock = 29,
1396    NumLock = 30,
1397    PrintScreen = 31,
1398    Pause = 32,
1399    Menu = 33,
1400}
1401impl BareKey {
1402    /// String value of the enum field names used in the ProtoBuf definition.
1403    ///
1404    /// The values are not transformed in any way and thus are considered stable
1405    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
1406    pub fn as_str_name(&self) -> &'static str {
1407        match self {
1408            BareKey::Unspecified => "BARE_KEY_UNSPECIFIED",
1409            BareKey::PageDown => "BARE_KEY_PAGE_DOWN",
1410            BareKey::PageUp => "BARE_KEY_PAGE_UP",
1411            BareKey::Left => "BARE_KEY_LEFT",
1412            BareKey::Down => "BARE_KEY_DOWN",
1413            BareKey::Up => "BARE_KEY_UP",
1414            BareKey::Right => "BARE_KEY_RIGHT",
1415            BareKey::Home => "BARE_KEY_HOME",
1416            BareKey::End => "BARE_KEY_END",
1417            BareKey::Backspace => "BARE_KEY_BACKSPACE",
1418            BareKey::Delete => "BARE_KEY_DELETE",
1419            BareKey::Insert => "BARE_KEY_INSERT",
1420            BareKey::F1 => "BARE_KEY_F1",
1421            BareKey::F2 => "BARE_KEY_F2",
1422            BareKey::F3 => "BARE_KEY_F3",
1423            BareKey::F4 => "BARE_KEY_F4",
1424            BareKey::F5 => "BARE_KEY_F5",
1425            BareKey::F6 => "BARE_KEY_F6",
1426            BareKey::F7 => "BARE_KEY_F7",
1427            BareKey::F8 => "BARE_KEY_F8",
1428            BareKey::F9 => "BARE_KEY_F9",
1429            BareKey::F10 => "BARE_KEY_F10",
1430            BareKey::F11 => "BARE_KEY_F11",
1431            BareKey::F12 => "BARE_KEY_F12",
1432            BareKey::Char => "BARE_KEY_CHAR",
1433            BareKey::Tab => "BARE_KEY_TAB",
1434            BareKey::Esc => "BARE_KEY_ESC",
1435            BareKey::Enter => "BARE_KEY_ENTER",
1436            BareKey::CapsLock => "BARE_KEY_CAPS_LOCK",
1437            BareKey::ScrollLock => "BARE_KEY_SCROLL_LOCK",
1438            BareKey::NumLock => "BARE_KEY_NUM_LOCK",
1439            BareKey::PrintScreen => "BARE_KEY_PRINT_SCREEN",
1440            BareKey::Pause => "BARE_KEY_PAUSE",
1441            BareKey::Menu => "BARE_KEY_MENU",
1442        }
1443    }
1444    /// Creates an enum from field names used in the ProtoBuf definition.
1445    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1446        match value {
1447            "BARE_KEY_UNSPECIFIED" => Some(Self::Unspecified),
1448            "BARE_KEY_PAGE_DOWN" => Some(Self::PageDown),
1449            "BARE_KEY_PAGE_UP" => Some(Self::PageUp),
1450            "BARE_KEY_LEFT" => Some(Self::Left),
1451            "BARE_KEY_DOWN" => Some(Self::Down),
1452            "BARE_KEY_UP" => Some(Self::Up),
1453            "BARE_KEY_RIGHT" => Some(Self::Right),
1454            "BARE_KEY_HOME" => Some(Self::Home),
1455            "BARE_KEY_END" => Some(Self::End),
1456            "BARE_KEY_BACKSPACE" => Some(Self::Backspace),
1457            "BARE_KEY_DELETE" => Some(Self::Delete),
1458            "BARE_KEY_INSERT" => Some(Self::Insert),
1459            "BARE_KEY_F1" => Some(Self::F1),
1460            "BARE_KEY_F2" => Some(Self::F2),
1461            "BARE_KEY_F3" => Some(Self::F3),
1462            "BARE_KEY_F4" => Some(Self::F4),
1463            "BARE_KEY_F5" => Some(Self::F5),
1464            "BARE_KEY_F6" => Some(Self::F6),
1465            "BARE_KEY_F7" => Some(Self::F7),
1466            "BARE_KEY_F8" => Some(Self::F8),
1467            "BARE_KEY_F9" => Some(Self::F9),
1468            "BARE_KEY_F10" => Some(Self::F10),
1469            "BARE_KEY_F11" => Some(Self::F11),
1470            "BARE_KEY_F12" => Some(Self::F12),
1471            "BARE_KEY_CHAR" => Some(Self::Char),
1472            "BARE_KEY_TAB" => Some(Self::Tab),
1473            "BARE_KEY_ESC" => Some(Self::Esc),
1474            "BARE_KEY_ENTER" => Some(Self::Enter),
1475            "BARE_KEY_CAPS_LOCK" => Some(Self::CapsLock),
1476            "BARE_KEY_SCROLL_LOCK" => Some(Self::ScrollLock),
1477            "BARE_KEY_NUM_LOCK" => Some(Self::NumLock),
1478            "BARE_KEY_PRINT_SCREEN" => Some(Self::PrintScreen),
1479            "BARE_KEY_PAUSE" => Some(Self::Pause),
1480            "BARE_KEY_MENU" => Some(Self::Menu),
1481            _ => None,
1482        }
1483    }
1484}
1485#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1486#[repr(i32)]
1487pub enum KeyModifier {
1488    Unspecified = 0,
1489    Ctrl = 1,
1490    Alt = 2,
1491    Shift = 3,
1492    Super = 4,
1493}
1494impl KeyModifier {
1495    /// String value of the enum field names used in the ProtoBuf definition.
1496    ///
1497    /// The values are not transformed in any way and thus are considered stable
1498    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
1499    pub fn as_str_name(&self) -> &'static str {
1500        match self {
1501            KeyModifier::Unspecified => "KEY_MODIFIER_UNSPECIFIED",
1502            KeyModifier::Ctrl => "KEY_MODIFIER_CTRL",
1503            KeyModifier::Alt => "KEY_MODIFIER_ALT",
1504            KeyModifier::Shift => "KEY_MODIFIER_SHIFT",
1505            KeyModifier::Super => "KEY_MODIFIER_SUPER",
1506        }
1507    }
1508    /// Creates an enum from field names used in the ProtoBuf definition.
1509    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1510        match value {
1511            "KEY_MODIFIER_UNSPECIFIED" => Some(Self::Unspecified),
1512            "KEY_MODIFIER_CTRL" => Some(Self::Ctrl),
1513            "KEY_MODIFIER_ALT" => Some(Self::Alt),
1514            "KEY_MODIFIER_SHIFT" => Some(Self::Shift),
1515            "KEY_MODIFIER_SUPER" => Some(Self::Super),
1516            _ => None,
1517        }
1518    }
1519}