zellij/zellij-utils/assets/prost/api.plugin_command.rs
Aram Drevekenin c5ac796880
Feature: web-client/server to share your sessions in the browser (#4242)
* work

* moar work

* notes

* work

* separate to terminal and control channels

* stdin working

* serve html web client initial

* serve static assets loaded with include_dir

* merge

* enable_web_server config parameter

* compile time flag to disable web server capability

* rustfmt

* add license to all xterm.js assets

* mouse working except copy/paste

* helpful comment

* web client improvements

- move script to js file
- add favicon
- add nerd font
- change title

TODO: investigate if font license embedded in otf is sufficient

* get mouse to work properly

* kitty keyboard support initial

* fix wrong type in preload link

* wip axum websocket handlers

- upgrade axum to v0.8.1, enable ws feature
- begin setup of websocket handlers
- tidy up imports

* replace control listener

* handle terminal websocket with axum

* cleanup Cargo.toml

* kitty fixes and bracketed paste

* fix(mouse): pane not found crash

* initial session switching infra

* add `web_client_font` option

* session switching, creation and resurrection working through the session manager

* move session module to zellij-utils and share logic with web-client

* some cleanups

* require restart for enable-web-server

* use session name from router

* write config to disk and watch for config changes

* rename session name to ipc path

* add basic panic handler, make render_to_client exit on channel close

* use while let instead of loop

* handle websocket close

* add mouse motions

* make clipboard work

* add weblink handling and webgl rendering

* add todo

* fix: use session name instead of patch on session switch

* use "default" layout for new sessions

* ui indication for session being shared

* share this session ui

* plugin assets

* Fix process crash on mac with notify watcher.

Use poll watcher instead of recommended as a workaround.

* make url session switching and creation work

* start welcome screen on root url

* scaffold control messages, set font from config

* set dimensions on session start

* bring back session name from url

* send bytes on terminal websocket instead of json

- create web client os input and id before websocket connection

* draft ui

* work

* refactor ui

* remove otf font, remove margins to avoid scrollbar

* version query endpoint for server status

* web session info query endpoint

* refactor: move stuff around

* add web client info to session metadata

* make tests pass

* populate real data in session list

* remove unnecessary endpoint

* add web_client node to config, add font option

* remove web_client_font

* allow disabling the web session through the config - WIP

* formalize sharing/not-sharing configuration

* fix tests

* allow shutting down web server

* display error when web clients are forbidden to attach

* only show sessions that allow web clients if this is a web client

* style(fmt): rustfmt

* fix: query web server from Zellij rather than from each plugin

* remove log spam

* handle some error paths better in the web client

* allow controlling the web server through the cli

* allow configuring the web server's ip/port

* fix tests and format code

* use direct WebServerStatus event instead of piggy-backing on SessionInfo

* plugin revamp initial

* make plugin responsive

* adjust plugin title

* refactor: share plugin

* refactor: share plugin

* add cors middleware

* some fixes for running without a compiled web server capability

* display error when starting the share plugin without web server support

* clarify config

* add pipelines to compile zellij without web support

* display error when unable to start web server

* only query web server when share plugin is running

* refactor(web-client): connection table

* give zellij_server_listener access to the control channel

* fixes and clarifications

* refactor: consolidate generate_unique_session_name

* give proper error when trying to attach to a forbidden session

* change browser URL when switching sessions

* add keyboard shortcut

* enforce https when bound to non-loopback ip

* initial authentication token implementation

* background color from theme

* initial web client theme config

* basic token generation ui

* refactor set config message creation

* also set body background

* allow editing scrollback for plugins too

* set scrollback to 0

* properly parse colors in config

* generate token from plugin

* nice login modals

* initial token management screen

* implement token authentication

* refactor(share): token management screen

* style(fmt): rustfmt

* fix(plugin): some minor bugs

* refactor(share): main screen

* refactor(share): token screen

* refactor(share): main

* refactor(share): ui components

* fix(responsiveness): properly send usage_width to the render function

* fix cli commands and add some verbosity

* add support for settings ansi and selection colors

* add cursor and cursor accent

* basic web client tests

* fix tests

* refactor: web client

* use session tokens for authentication

* improve modals

* move shutdown to ipc

* refactor: ipc logic

* serialize theme config for web client

* update tests

* refactor: move some stuff around to prepare for config hot reload

* config live reloading for the web clients

* change remember-me UI wording

* improve xterm.js link handling

* make sure terminal is focused on mousemove

* remove deprecated sharing indication from compact-bar

* gate deps and functionality behind the web_server_compatibility feature

* feat(build): add --no-web flag in all the places

* fix some other build flows

* add new assets

* update CI for no-web (untested)

* make more dependencies optional

* update axum-extra

* add web client configuration options

* gracefully close connections on server exit

* tests for graceful connection closing

* handle client-side reconnect when server is down

* fix: make sure ipc bus folder exists before starting

* add commands to manage login tokens from the cli

* style(fmt): rustfmt

* some cleanups

* fix(ux): allow alt-right-click on the web client without opening the context menu

* fix: prevent attaching to welcome screen

* fix: reload config issues

* fix long socket path on macos

* normalize config conversion and fix color gap in browser

* revoke session_token cookie if it is not valid

* fix: visual bug with multiple clients in extremely small screen sizes

* fix: only include rusqlite for the web server capability builds

* update e2e snapshots

* refactor(web): client side js

* some cleanups

* moar cleanups

* fix(tests): wait for server instead of using a fixed timeout

* debug CI

* fix(tests): use spawn_blocking for running the test web server

* fix(tests): wait for http rather than tcp port

* fix(tests): properly pass config path - hopefully this is the issue...

* success! bring back the rest of the tests

* attempt to fix the macos CI issue

* docs(changelog): add PR

---------

Co-authored-by: Thomas Linford <linford.t@gmail.com>
2025-06-23 19:19:37 +02:00

1406 lines
62 KiB
Rust

#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PluginCommand {
#[prost(enumeration="CommandName", tag="1")]
pub name: i32,
#[prost(oneof="plugin_command::Payload", 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, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110")]
pub payload: ::core::option::Option<plugin_command::Payload>,
}
/// Nested message and enum types in `PluginCommand`.
pub mod plugin_command {
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Oneof)]
pub enum Payload {
#[prost(message, tag="2")]
SubscribePayload(super::SubscribePayload),
#[prost(message, tag="3")]
UnsubscribePayload(super::UnsubscribePayload),
#[prost(bool, tag="4")]
SetSelectablePayload(bool),
#[prost(message, tag="5")]
OpenFilePayload(super::OpenFilePayload),
#[prost(message, tag="6")]
OpenFileFloatingPayload(super::OpenFilePayload),
#[prost(message, tag="7")]
OpenTerminalPayload(super::OpenFilePayload),
#[prost(message, tag="8")]
OpenTerminalFloatingPayload(super::OpenFilePayload),
#[prost(message, tag="9")]
OpenCommandPanePayload(super::OpenCommandPanePayload),
#[prost(message, tag="10")]
OpenCommandPaneFloatingPayload(super::OpenCommandPanePayload),
#[prost(message, tag="11")]
SwitchTabToPayload(super::SwitchTabToPayload),
#[prost(message, tag="12")]
SetTimeoutPayload(super::SetTimeoutPayload),
#[prost(message, tag="13")]
ExecCmdPayload(super::ExecCmdPayload),
#[prost(message, tag="14")]
PostMessageToPayload(super::PluginMessagePayload),
#[prost(message, tag="15")]
PostMessageToPluginPayload(super::PluginMessagePayload),
#[prost(bool, tag="16")]
ShowSelfPayload(bool),
#[prost(message, tag="17")]
SwitchToModePayload(super::super::action::SwitchToModePayload),
#[prost(string, tag="18")]
NewTabsWithLayoutPayload(::prost::alloc::string::String),
#[prost(message, tag="19")]
ResizePayload(super::ResizePayload),
#[prost(message, tag="20")]
ResizeWithDirectionPayload(super::ResizePayload),
#[prost(message, tag="21")]
MoveFocusPayload(super::MovePayload),
#[prost(message, tag="22")]
MoveFocusOrTabPayload(super::MovePayload),
#[prost(bytes, tag="23")]
WritePayload(::prost::alloc::vec::Vec<u8>),
#[prost(string, tag="24")]
WriteCharsPayload(::prost::alloc::string::String),
#[prost(message, tag="25")]
MovePaneWithDirectionPayload(super::MovePayload),
#[prost(string, tag="26")]
GoToTabNamePayload(::prost::alloc::string::String),
#[prost(string, tag="27")]
FocusOrCreateTabPayload(::prost::alloc::string::String),
#[prost(uint32, tag="28")]
GoToTabPayload(u32),
#[prost(string, tag="29")]
StartOrReloadPluginPayload(::prost::alloc::string::String),
#[prost(uint32, tag="30")]
CloseTerminalPanePayload(u32),
#[prost(uint32, tag="31")]
ClosePluginPanePayload(u32),
#[prost(message, tag="32")]
FocusTerminalPanePayload(super::super::action::PaneIdAndShouldFloat),
#[prost(message, tag="33")]
FocusPluginPanePayload(super::super::action::PaneIdAndShouldFloat),
#[prost(message, tag="34")]
RenameTerminalPanePayload(super::IdAndNewName),
#[prost(message, tag="35")]
RenamePluginPanePayload(super::IdAndNewName),
#[prost(message, tag="36")]
RenameTabPayload(super::IdAndNewName),
#[prost(string, tag="37")]
ReportCrashPayload(::prost::alloc::string::String),
#[prost(message, tag="38")]
RequestPluginPermissionPayload(super::RequestPluginPermissionPayload),
#[prost(message, tag="39")]
SwitchSessionPayload(super::SwitchSessionPayload),
#[prost(message, tag="40")]
OpenFileInPlacePayload(super::OpenFilePayload),
#[prost(message, tag="41")]
OpenTerminalInPlacePayload(super::OpenFilePayload),
#[prost(message, tag="42")]
OpenCommandPaneInPlacePayload(super::OpenCommandPanePayload),
#[prost(message, tag="43")]
RunCommandPayload(super::RunCommandPayload),
#[prost(message, tag="44")]
WebRequestPayload(super::WebRequestPayload),
#[prost(string, tag="45")]
DeleteDeadSessionPayload(::prost::alloc::string::String),
#[prost(string, tag="46")]
RenameSessionPayload(::prost::alloc::string::String),
#[prost(string, tag="47")]
UnblockCliPipeInputPayload(::prost::alloc::string::String),
#[prost(string, tag="48")]
BlockCliPipeInputPayload(::prost::alloc::string::String),
#[prost(message, tag="49")]
CliPipeOutputPayload(super::CliPipeOutputPayload),
#[prost(message, tag="50")]
MessageToPluginPayload(super::MessageToPluginPayload),
#[prost(message, tag="60")]
KillSessionsPayload(super::KillSessionsPayload),
#[prost(string, tag="61")]
ScanHostFolderPayload(::prost::alloc::string::String),
#[prost(message, tag="62")]
NewTabsWithLayoutInfoPayload(super::NewTabsWithLayoutInfoPayload),
#[prost(message, tag="63")]
ReconfigurePayload(super::ReconfigurePayload),
#[prost(message, tag="64")]
HidePaneWithIdPayload(super::HidePaneWithIdPayload),
#[prost(message, tag="65")]
ShowPaneWithIdPayload(super::ShowPaneWithIdPayload),
#[prost(message, tag="66")]
OpenCommandPaneBackgroundPayload(super::OpenCommandPanePayload),
#[prost(message, tag="67")]
RerunCommandPanePayload(super::RerunCommandPanePayload),
#[prost(message, tag="68")]
ResizePaneIdWithDirectionPayload(super::ResizePaneIdWithDirectionPayload),
#[prost(message, tag="69")]
EditScrollbackForPaneWithIdPayload(super::EditScrollbackForPaneWithIdPayload),
#[prost(message, tag="70")]
WriteToPaneIdPayload(super::WriteToPaneIdPayload),
#[prost(message, tag="71")]
WriteCharsToPaneIdPayload(super::WriteCharsToPaneIdPayload),
#[prost(message, tag="72")]
MovePaneWithPaneIdPayload(super::MovePaneWithPaneIdPayload),
#[prost(message, tag="73")]
MovePaneWithPaneIdInDirectionPayload(super::MovePaneWithPaneIdInDirectionPayload),
#[prost(message, tag="74")]
ClearScreenForPaneIdPayload(super::ClearScreenForPaneIdPayload),
#[prost(message, tag="75")]
ScrollUpInPaneIdPayload(super::ScrollUpInPaneIdPayload),
#[prost(message, tag="76")]
ScrollDownInPaneIdPayload(super::ScrollDownInPaneIdPayload),
#[prost(message, tag="77")]
ScrollToTopInPaneIdPayload(super::ScrollToTopInPaneIdPayload),
#[prost(message, tag="78")]
ScrollToBottomInPaneIdPayload(super::ScrollToBottomInPaneIdPayload),
#[prost(message, tag="79")]
PageScrollUpInPaneIdPayload(super::PageScrollUpInPaneIdPayload),
#[prost(message, tag="80")]
PageScrollDownInPaneIdPayload(super::PageScrollDownInPaneIdPayload),
#[prost(message, tag="81")]
TogglePaneIdFullscreenPayload(super::TogglePaneIdFullscreenPayload),
#[prost(message, tag="82")]
TogglePaneEmbedOrEjectForPaneIdPayload(super::TogglePaneEmbedOrEjectForPaneIdPayload),
#[prost(message, tag="83")]
CloseTabWithIndexPayload(super::CloseTabWithIndexPayload),
#[prost(message, tag="84")]
BreakPanesToNewTabPayload(super::BreakPanesToNewTabPayload),
#[prost(message, tag="85")]
BreakPanesToTabWithIndexPayload(super::BreakPanesToTabWithIndexPayload),
#[prost(message, tag="86")]
ReloadPluginPayload(super::ReloadPluginPayload),
#[prost(message, tag="87")]
LoadNewPluginPayload(super::LoadNewPluginPayload),
#[prost(message, tag="88")]
RebindKeysPayload(super::RebindKeysPayload),
#[prost(message, tag="89")]
ChangeHostFolderPayload(super::ChangeHostFolderPayload),
#[prost(message, tag="90")]
SetFloatingPanePinnedPayload(super::SetFloatingPanePinnedPayload),
#[prost(message, tag="91")]
StackPanesPayload(super::StackPanesPayload),
#[prost(message, tag="92")]
ChangeFloatingPanesCoordinatesPayload(super::ChangeFloatingPanesCoordinatesPayload),
#[prost(message, tag="93")]
OpenCommandPaneNearPluginPayload(super::OpenCommandPaneNearPluginPayload),
#[prost(message, tag="94")]
OpenTerminalNearPluginPayload(super::OpenTerminalNearPluginPayload),
#[prost(message, tag="95")]
OpenTerminalFloatingNearPluginPayload(super::OpenTerminalFloatingNearPluginPayload),
#[prost(message, tag="96")]
OpenTerminalInPlaceOfPluginPayload(super::OpenTerminalInPlaceOfPluginPayload),
#[prost(message, tag="97")]
OpenCommandPaneFloatingNearPluginPayload(super::OpenCommandPaneFloatingNearPluginPayload),
#[prost(message, tag="98")]
OpenCommandPaneInPlaceOfPluginPayload(super::OpenCommandPaneInPlaceOfPluginPayload),
#[prost(message, tag="99")]
OpenFileNearPluginPayload(super::OpenFileNearPluginPayload),
#[prost(message, tag="100")]
OpenFileFloatingNearPluginPayload(super::OpenFileFloatingNearPluginPayload),
#[prost(message, tag="101")]
OpenFileInPlaceOfPluginPayload(super::OpenFileInPlaceOfPluginPayload),
#[prost(message, tag="102")]
GroupAndUngroupPanesPayload(super::GroupAndUngroupPanesPayload),
#[prost(message, tag="103")]
HighlightAndUnhighlightPanesPayload(super::HighlightAndUnhighlightPanesPayload),
#[prost(message, tag="104")]
CloseMultiplePanesPayload(super::CloseMultiplePanesPayload),
#[prost(message, tag="105")]
FloatMultiplePanesPayload(super::FloatMultiplePanesPayload),
#[prost(message, tag="106")]
EmbedMultiplePanesPayload(super::EmbedMultiplePanesPayload),
#[prost(message, tag="107")]
SetSelfMouseSelectionSupportPayload(super::SetSelfMouseSelectionSupportPayload),
#[prost(message, tag="108")]
GenerateWebLoginTokenPayload(super::GenerateWebLoginTokenPayload),
#[prost(message, tag="109")]
RevokeWebLoginTokenPayload(super::RevokeWebLoginTokenPayload),
#[prost(message, tag="110")]
RenameWebLoginTokenPayload(super::RenameWebLoginTokenPayload),
}
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct RenameWebLoginTokenPayload {
#[prost(string, tag="1")]
pub old_name: ::prost::alloc::string::String,
#[prost(string, tag="2")]
pub new_name: ::prost::alloc::string::String,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct RevokeWebLoginTokenPayload {
#[prost(string, tag="1")]
pub token_label: ::prost::alloc::string::String,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GenerateWebLoginTokenPayload {
#[prost(string, optional, tag="1")]
pub token_label: ::core::option::Option<::prost::alloc::string::String>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SetSelfMouseSelectionSupportPayload {
#[prost(bool, tag="1")]
pub support_mouse_selection: bool,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct EmbedMultiplePanesPayload {
#[prost(message, repeated, tag="1")]
pub pane_ids: ::prost::alloc::vec::Vec<PaneId>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct FloatMultiplePanesPayload {
#[prost(message, repeated, tag="1")]
pub pane_ids: ::prost::alloc::vec::Vec<PaneId>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CloseMultiplePanesPayload {
#[prost(message, repeated, tag="1")]
pub pane_ids: ::prost::alloc::vec::Vec<PaneId>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct HighlightAndUnhighlightPanesPayload {
#[prost(message, repeated, tag="1")]
pub pane_ids_to_highlight: ::prost::alloc::vec::Vec<PaneId>,
#[prost(message, repeated, tag="2")]
pub pane_ids_to_unhighlight: ::prost::alloc::vec::Vec<PaneId>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GroupAndUngroupPanesPayload {
#[prost(message, repeated, tag="1")]
pub pane_ids_to_group: ::prost::alloc::vec::Vec<PaneId>,
#[prost(message, repeated, tag="2")]
pub pane_ids_to_ungroup: ::prost::alloc::vec::Vec<PaneId>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct OpenFileInPlaceOfPluginPayload {
#[prost(message, optional, tag="1")]
pub file_to_open: ::core::option::Option<super::file::File>,
#[prost(message, optional, tag="2")]
pub floating_pane_coordinates: ::core::option::Option<FloatingPaneCoordinates>,
#[prost(message, repeated, tag="3")]
pub context: ::prost::alloc::vec::Vec<ContextItem>,
#[prost(bool, tag="4")]
pub close_plugin_after_replace: bool,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct OpenFileFloatingNearPluginPayload {
#[prost(message, optional, tag="1")]
pub file_to_open: ::core::option::Option<super::file::File>,
#[prost(message, optional, tag="2")]
pub floating_pane_coordinates: ::core::option::Option<FloatingPaneCoordinates>,
#[prost(message, repeated, tag="3")]
pub context: ::prost::alloc::vec::Vec<ContextItem>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct OpenFileNearPluginPayload {
#[prost(message, optional, tag="1")]
pub file_to_open: ::core::option::Option<super::file::File>,
#[prost(message, optional, tag="2")]
pub floating_pane_coordinates: ::core::option::Option<FloatingPaneCoordinates>,
#[prost(message, repeated, tag="3")]
pub context: ::prost::alloc::vec::Vec<ContextItem>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct OpenCommandPaneInPlaceOfPluginPayload {
#[prost(message, optional, tag="1")]
pub command_to_run: ::core::option::Option<super::command::Command>,
#[prost(message, repeated, tag="3")]
pub context: ::prost::alloc::vec::Vec<ContextItem>,
#[prost(bool, tag="4")]
pub close_plugin_after_replace: bool,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct OpenCommandPaneFloatingNearPluginPayload {
#[prost(message, optional, tag="1")]
pub command_to_run: ::core::option::Option<super::command::Command>,
#[prost(message, optional, tag="2")]
pub floating_pane_coordinates: ::core::option::Option<FloatingPaneCoordinates>,
#[prost(message, repeated, tag="3")]
pub context: ::prost::alloc::vec::Vec<ContextItem>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct OpenTerminalInPlaceOfPluginPayload {
#[prost(message, optional, tag="1")]
pub file_to_open: ::core::option::Option<super::file::File>,
#[prost(message, repeated, tag="3")]
pub context: ::prost::alloc::vec::Vec<ContextItem>,
#[prost(bool, tag="4")]
pub close_plugin_after_replace: bool,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct OpenTerminalFloatingNearPluginPayload {
#[prost(message, optional, tag="1")]
pub file_to_open: ::core::option::Option<super::file::File>,
#[prost(message, optional, tag="2")]
pub floating_pane_coordinates: ::core::option::Option<FloatingPaneCoordinates>,
#[prost(message, repeated, tag="3")]
pub context: ::prost::alloc::vec::Vec<ContextItem>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct OpenTerminalNearPluginPayload {
#[prost(message, optional, tag="1")]
pub file_to_open: ::core::option::Option<super::file::File>,
#[prost(message, repeated, tag="3")]
pub context: ::prost::alloc::vec::Vec<ContextItem>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct OpenCommandPaneNearPluginPayload {
#[prost(message, optional, tag="1")]
pub command_to_run: ::core::option::Option<super::command::Command>,
#[prost(message, optional, tag="2")]
pub floating_pane_coordinates: ::core::option::Option<FloatingPaneCoordinates>,
#[prost(message, repeated, tag="3")]
pub context: ::prost::alloc::vec::Vec<ContextItem>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ChangeFloatingPanesCoordinatesPayload {
#[prost(message, repeated, tag="1")]
pub pane_ids_and_floating_panes_coordinates: ::prost::alloc::vec::Vec<PaneIdAndFloatingPaneCoordinates>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct StackPanesPayload {
#[prost(message, repeated, tag="1")]
pub pane_ids: ::prost::alloc::vec::Vec<PaneId>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SetFloatingPanePinnedPayload {
#[prost(message, optional, tag="1")]
pub pane_id: ::core::option::Option<PaneId>,
#[prost(bool, tag="2")]
pub should_be_pinned: bool,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ChangeHostFolderPayload {
#[prost(string, tag="1")]
pub new_host_folder: ::prost::alloc::string::String,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct RebindKeysPayload {
#[prost(message, repeated, tag="1")]
pub keys_to_rebind: ::prost::alloc::vec::Vec<KeyToRebind>,
#[prost(message, repeated, tag="2")]
pub keys_to_unbind: ::prost::alloc::vec::Vec<KeyToUnbind>,
#[prost(bool, tag="3")]
pub write_config_to_disk: bool,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct KeyToRebind {
#[prost(enumeration="super::input_mode::InputMode", tag="1")]
pub input_mode: i32,
#[prost(message, optional, tag="2")]
pub key: ::core::option::Option<super::key::Key>,
#[prost(message, repeated, tag="3")]
pub actions: ::prost::alloc::vec::Vec<super::action::Action>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct KeyToUnbind {
#[prost(enumeration="super::input_mode::InputMode", tag="1")]
pub input_mode: i32,
#[prost(message, optional, tag="2")]
pub key: ::core::option::Option<super::key::Key>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct LoadNewPluginPayload {
#[prost(string, tag="1")]
pub plugin_url: ::prost::alloc::string::String,
#[prost(message, repeated, tag="2")]
pub plugin_config: ::prost::alloc::vec::Vec<ContextItem>,
#[prost(bool, tag="3")]
pub should_load_plugin_in_background: bool,
#[prost(bool, tag="4")]
pub should_skip_plugin_cache: bool,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ReloadPluginPayload {
#[prost(uint32, tag="1")]
pub plugin_id: u32,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct BreakPanesToTabWithIndexPayload {
#[prost(message, repeated, tag="1")]
pub pane_ids: ::prost::alloc::vec::Vec<PaneId>,
#[prost(uint32, tag="2")]
pub tab_index: u32,
#[prost(bool, tag="3")]
pub should_change_focus_to_target_tab: bool,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct BreakPanesToNewTabPayload {
#[prost(message, repeated, tag="1")]
pub pane_ids: ::prost::alloc::vec::Vec<PaneId>,
#[prost(bool, tag="2")]
pub should_change_focus_to_new_tab: bool,
#[prost(string, optional, tag="3")]
pub new_tab_name: ::core::option::Option<::prost::alloc::string::String>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MovePaneWithPaneIdPayload {
#[prost(message, optional, tag="1")]
pub pane_id: ::core::option::Option<PaneId>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MovePaneWithPaneIdInDirectionPayload {
#[prost(message, optional, tag="1")]
pub pane_id: ::core::option::Option<PaneId>,
#[prost(message, optional, tag="2")]
pub direction: ::core::option::Option<super::resize::MoveDirection>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ClearScreenForPaneIdPayload {
#[prost(message, optional, tag="1")]
pub pane_id: ::core::option::Option<PaneId>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ScrollUpInPaneIdPayload {
#[prost(message, optional, tag="1")]
pub pane_id: ::core::option::Option<PaneId>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ScrollDownInPaneIdPayload {
#[prost(message, optional, tag="1")]
pub pane_id: ::core::option::Option<PaneId>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ScrollToTopInPaneIdPayload {
#[prost(message, optional, tag="1")]
pub pane_id: ::core::option::Option<PaneId>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ScrollToBottomInPaneIdPayload {
#[prost(message, optional, tag="1")]
pub pane_id: ::core::option::Option<PaneId>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PageScrollUpInPaneIdPayload {
#[prost(message, optional, tag="1")]
pub pane_id: ::core::option::Option<PaneId>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PageScrollDownInPaneIdPayload {
#[prost(message, optional, tag="1")]
pub pane_id: ::core::option::Option<PaneId>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct TogglePaneIdFullscreenPayload {
#[prost(message, optional, tag="1")]
pub pane_id: ::core::option::Option<PaneId>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct TogglePaneEmbedOrEjectForPaneIdPayload {
#[prost(message, optional, tag="1")]
pub pane_id: ::core::option::Option<PaneId>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CloseTabWithIndexPayload {
#[prost(uint32, tag="1")]
pub tab_index: u32,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct WriteCharsToPaneIdPayload {
#[prost(string, tag="1")]
pub chars_to_write: ::prost::alloc::string::String,
#[prost(message, optional, tag="2")]
pub pane_id: ::core::option::Option<PaneId>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct WriteToPaneIdPayload {
#[prost(bytes="vec", tag="1")]
pub bytes_to_write: ::prost::alloc::vec::Vec<u8>,
#[prost(message, optional, tag="2")]
pub pane_id: ::core::option::Option<PaneId>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct EditScrollbackForPaneWithIdPayload {
#[prost(message, optional, tag="1")]
pub pane_id: ::core::option::Option<PaneId>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ResizePaneIdWithDirectionPayload {
#[prost(message, optional, tag="1")]
pub resize: ::core::option::Option<super::resize::Resize>,
#[prost(message, optional, tag="2")]
pub pane_id: ::core::option::Option<PaneId>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ReconfigurePayload {
#[prost(string, tag="1")]
pub config: ::prost::alloc::string::String,
#[prost(bool, tag="2")]
pub write_to_disk: bool,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct RerunCommandPanePayload {
#[prost(uint32, tag="1")]
pub terminal_pane_id: u32,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct HidePaneWithIdPayload {
#[prost(message, optional, tag="1")]
pub pane_id: ::core::option::Option<PaneId>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ShowPaneWithIdPayload {
#[prost(message, optional, tag="1")]
pub pane_id: ::core::option::Option<PaneId>,
#[prost(bool, tag="2")]
pub should_float_if_hidden: bool,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct NewTabsWithLayoutInfoPayload {
#[prost(message, optional, tag="1")]
pub layout_info: ::core::option::Option<super::event::LayoutInfo>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct KillSessionsPayload {
#[prost(string, repeated, tag="1")]
pub session_names: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CliPipeOutputPayload {
#[prost(string, tag="1")]
pub pipe_name: ::prost::alloc::string::String,
#[prost(string, tag="2")]
pub output: ::prost::alloc::string::String,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MessageToPluginPayload {
#[prost(string, optional, tag="1")]
pub plugin_url: ::core::option::Option<::prost::alloc::string::String>,
#[prost(message, repeated, tag="2")]
pub plugin_config: ::prost::alloc::vec::Vec<ContextItem>,
#[prost(string, tag="3")]
pub message_name: ::prost::alloc::string::String,
#[prost(string, optional, tag="4")]
pub message_payload: ::core::option::Option<::prost::alloc::string::String>,
#[prost(message, repeated, tag="5")]
pub message_args: ::prost::alloc::vec::Vec<ContextItem>,
#[prost(message, optional, tag="6")]
pub new_plugin_args: ::core::option::Option<NewPluginArgs>,
#[prost(uint32, optional, tag="7")]
pub destination_plugin_id: ::core::option::Option<u32>,
#[prost(message, optional, tag="8")]
pub floating_pane_coordinates: ::core::option::Option<FloatingPaneCoordinates>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct NewPluginArgs {
#[prost(bool, optional, tag="1")]
pub should_float: ::core::option::Option<bool>,
#[prost(message, optional, tag="2")]
pub pane_id_to_replace: ::core::option::Option<PaneId>,
#[prost(string, optional, tag="3")]
pub pane_title: ::core::option::Option<::prost::alloc::string::String>,
#[prost(string, optional, tag="4")]
pub cwd: ::core::option::Option<::prost::alloc::string::String>,
#[prost(bool, tag="5")]
pub skip_cache: bool,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PaneId {
#[prost(enumeration="PaneType", tag="1")]
pub pane_type: i32,
#[prost(uint32, tag="2")]
pub id: u32,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SwitchSessionPayload {
#[prost(string, optional, tag="1")]
pub name: ::core::option::Option<::prost::alloc::string::String>,
#[prost(uint32, optional, tag="2")]
pub tab_position: ::core::option::Option<u32>,
#[prost(uint32, optional, tag="3")]
pub pane_id: ::core::option::Option<u32>,
#[prost(bool, optional, tag="4")]
pub pane_id_is_plugin: ::core::option::Option<bool>,
#[prost(message, optional, tag="5")]
pub layout: ::core::option::Option<super::event::LayoutInfo>,
#[prost(string, optional, tag="6")]
pub cwd: ::core::option::Option<::prost::alloc::string::String>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct RequestPluginPermissionPayload {
#[prost(enumeration="super::plugin_permission::PermissionType", repeated, tag="1")]
pub permissions: ::prost::alloc::vec::Vec<i32>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SubscribePayload {
#[prost(message, optional, tag="1")]
pub subscriptions: ::core::option::Option<super::event::EventNameList>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct UnsubscribePayload {
#[prost(message, optional, tag="1")]
pub subscriptions: ::core::option::Option<super::event::EventNameList>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct OpenFilePayload {
#[prost(message, optional, tag="1")]
pub file_to_open: ::core::option::Option<super::file::File>,
#[prost(message, optional, tag="2")]
pub floating_pane_coordinates: ::core::option::Option<FloatingPaneCoordinates>,
#[prost(message, repeated, tag="3")]
pub context: ::prost::alloc::vec::Vec<ContextItem>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct OpenCommandPanePayload {
#[prost(message, optional, tag="1")]
pub command_to_run: ::core::option::Option<super::command::Command>,
#[prost(message, optional, tag="2")]
pub floating_pane_coordinates: ::core::option::Option<FloatingPaneCoordinates>,
#[prost(message, repeated, tag="3")]
pub context: ::prost::alloc::vec::Vec<ContextItem>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SwitchTabToPayload {
#[prost(uint32, tag="1")]
pub tab_index: u32,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SetTimeoutPayload {
#[prost(double, tag="1")]
pub seconds: f64,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ExecCmdPayload {
#[prost(string, repeated, tag="1")]
pub command_line: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct RunCommandPayload {
#[prost(string, repeated, tag="1")]
pub command_line: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
#[prost(message, repeated, tag="2")]
pub env_variables: ::prost::alloc::vec::Vec<EnvVariable>,
#[prost(string, tag="3")]
pub cwd: ::prost::alloc::string::String,
#[prost(message, repeated, tag="4")]
pub context: ::prost::alloc::vec::Vec<ContextItem>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct WebRequestPayload {
#[prost(string, tag="1")]
pub url: ::prost::alloc::string::String,
#[prost(enumeration="HttpVerb", tag="2")]
pub verb: i32,
#[prost(message, repeated, tag="3")]
pub headers: ::prost::alloc::vec::Vec<super::event::Header>,
#[prost(bytes="vec", tag="4")]
pub body: ::prost::alloc::vec::Vec<u8>,
#[prost(message, repeated, tag="5")]
pub context: ::prost::alloc::vec::Vec<ContextItem>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct EnvVariable {
#[prost(string, tag="1")]
pub name: ::prost::alloc::string::String,
#[prost(string, tag="2")]
pub value: ::prost::alloc::string::String,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ContextItem {
#[prost(string, tag="1")]
pub name: ::prost::alloc::string::String,
#[prost(string, tag="2")]
pub value: ::prost::alloc::string::String,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PluginMessagePayload {
#[prost(message, optional, tag="1")]
pub message: ::core::option::Option<super::message::Message>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ResizePayload {
#[prost(message, optional, tag="1")]
pub resize: ::core::option::Option<super::resize::Resize>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MovePayload {
#[prost(message, optional, tag="1")]
pub direction: ::core::option::Option<super::resize::MoveDirection>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PaneIdAndFloatingPaneCoordinates {
#[prost(message, optional, tag="1")]
pub pane_id: ::core::option::Option<PaneId>,
#[prost(message, optional, tag="2")]
pub floating_pane_coordinates: ::core::option::Option<FloatingPaneCoordinates>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct IdAndNewName {
/// pane id or tab index
#[prost(uint32, tag="1")]
pub id: u32,
#[prost(string, tag="2")]
pub new_name: ::prost::alloc::string::String,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct FloatingPaneCoordinates {
#[prost(message, optional, tag="1")]
pub x: ::core::option::Option<FixedOrPercentValue>,
#[prost(message, optional, tag="2")]
pub y: ::core::option::Option<FixedOrPercentValue>,
#[prost(message, optional, tag="3")]
pub width: ::core::option::Option<FixedOrPercentValue>,
#[prost(message, optional, tag="4")]
pub height: ::core::option::Option<FixedOrPercentValue>,
#[prost(bool, optional, tag="5")]
pub pinned: ::core::option::Option<bool>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct FixedOrPercentValue {
#[prost(enumeration="FixedOrPercent", tag="1")]
pub r#type: i32,
#[prost(uint32, tag="2")]
pub value: u32,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CreateTokenResponse {
#[prost(string, optional, tag="1")]
pub token: ::core::option::Option<::prost::alloc::string::String>,
#[prost(string, optional, tag="2")]
pub token_label: ::core::option::Option<::prost::alloc::string::String>,
#[prost(string, optional, tag="3")]
pub error: ::core::option::Option<::prost::alloc::string::String>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct RevokeTokenResponse {
#[prost(bool, tag="1")]
pub successfully_revoked: bool,
#[prost(string, optional, tag="2")]
pub error: ::core::option::Option<::prost::alloc::string::String>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ListTokensResponse {
/// tokens/creation_times should be synchronized
#[prost(string, repeated, tag="1")]
pub tokens: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
#[prost(string, repeated, tag="2")]
pub creation_times: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
#[prost(string, optional, tag="3")]
pub error: ::core::option::Option<::prost::alloc::string::String>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct RevokeAllWebTokensResponse {
#[prost(bool, tag="1")]
pub successfully_revoked: bool,
#[prost(string, optional, tag="2")]
pub error: ::core::option::Option<::prost::alloc::string::String>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct RenameWebTokenResponse {
#[prost(bool, tag="1")]
pub successfully_renamed: bool,
#[prost(string, optional, tag="2")]
pub error: ::core::option::Option<::prost::alloc::string::String>,
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum CommandName {
Subscribe = 0,
Unsubscribe = 1,
SetSelectable = 2,
GetPluginIds = 3,
GetZellijVersion = 4,
OpenFile = 5,
OpenFileFloating = 6,
OpenTerminal = 7,
OpenTerminalFloating = 8,
OpenCommandPane = 9,
OpenCommandPaneFloating = 10,
SwitchTabTo = 11,
SetTimeout = 12,
ExecCmd = 13,
PostMessageTo = 14,
PostMessageToPlugin = 15,
HideSelf = 16,
ShowSelf = 17,
SwitchToMode = 18,
NewTabsWithLayout = 19,
NewTab = 20,
GoToNextTab = 21,
GoToPreviousTab = 22,
Resize = 23,
ResizeWithDirection = 24,
FocusNextPane = 25,
FocusPreviousPane = 26,
MoveFocus = 27,
MoveFocusOrTab = 28,
Detach = 29,
EditScrollback = 30,
Write = 31,
WriteChars = 32,
ToggleTab = 33,
MovePane = 34,
MovePaneWithDirection = 35,
ClearScreen = 36,
ScrollUp = 37,
ScrollDown = 38,
ScrollToTop = 39,
ScrollToBottom = 40,
PageScrollUp = 41,
PageScrollDown = 42,
ToggleFocusFullscreen = 43,
TogglePaneFrames = 44,
TogglePaneEmbedOrEject = 45,
UndoRenamePane = 46,
CloseFocus = 47,
ToggleActiveTabSync = 48,
CloseFocusedTab = 49,
UndoRenameTab = 50,
QuitZellij = 51,
PreviousSwapLayout = 52,
NextSwapLayout = 53,
GoToTabName = 54,
FocusOrCreateTab = 55,
GoToTab = 56,
StartOrReloadPlugin = 57,
CloseTerminalPane = 58,
ClosePluginPane = 59,
FocusTerminalPane = 60,
FocusPluginPane = 61,
RenameTerminalPane = 62,
RenamePluginPane = 63,
RenameTab = 64,
ReportCrash = 65,
RequestPluginPermissions = 66,
SwitchSession = 67,
OpenTerminalInPlace = 68,
OpenCommandInPlace = 69,
OpenFileInPlace = 70,
RunCommand = 71,
WebRequest = 72,
DeleteDeadSession = 73,
DeleteAllDeadSessions = 74,
RenameSession = 75,
UnblockCliPipeInput = 76,
BlockCliPipeInput = 77,
CliPipeOutput = 78,
MessageToPlugin = 79,
DisconnectOtherClients = 80,
KillSessions = 81,
ScanHostFolder = 82,
WatchFilesystem = 83,
DumpSessionLayout = 84,
CloseSelf = 85,
NewTabsWithLayoutInfo = 86,
Reconfigure = 87,
HidePaneWithId = 88,
ShowPaneWithId = 89,
OpenCommandPaneBackground = 90,
RerunCommandPane = 91,
ResizePaneIdWithDirection = 92,
EditScrollbackForPaneWithId = 93,
WriteToPaneId = 94,
WriteCharsToPaneId = 95,
MovePaneWithPaneId = 96,
MovePaneWithPaneIdInDirection = 97,
ClearScreenForPaneId = 98,
ScrollUpInPaneId = 99,
ScrollDownInPaneId = 100,
ScrollToTopInPaneId = 101,
ScrollToBottomInPaneId = 102,
PageScrollUpInPaneId = 103,
PageScrollDownInPaneId = 104,
TogglePaneIdFullscreen = 105,
TogglePaneEmbedOrEjectForPaneId = 106,
CloseTabWithIndex = 107,
BreakPanesToNewTab = 108,
BreakPanesToTabWithIndex = 109,
ReloadPlugin = 110,
LoadNewPlugin = 111,
RebindKeys = 112,
ListClients = 113,
ChangeHostFolder = 114,
SetFloatingPanePinned = 115,
StackPanes = 116,
ChangeFloatingPanesCoordinates = 117,
OpenCommandPaneNearPlugin = 118,
OpenTerminalNearPlugin = 119,
OpenTerminalFloatingNearPlugin = 120,
OpenTerminalInPlaceOfPlugin = 121,
OpenCommandPaneFloatingNearPlugin = 122,
OpenCommandPaneInPlaceOfPlugin = 123,
OpenFileNearPlugin = 124,
OpenFileFloatingNearPlugin = 125,
OpenFileInPlaceOfPlugin = 126,
StartWebServer = 127,
GroupAndUngroupPanes = 128,
HighlightAndUnhighlightPanes = 129,
CloseMultiplePanes = 130,
FloatMultiplePanes = 131,
EmbedMultiplePanes = 132,
ShareCurrentSession = 133,
StopSharingCurrentSession = 134,
StopWebServer = 135,
QueryWebServerStatus = 136,
SetSelfMouseSelectionSupport = 137,
GenerateWebLoginToken = 138,
RevokeWebLoginToken = 139,
ListWebLoginTokens = 140,
RevokeAllWebLoginTokens = 141,
RenameWebLoginToken = 142,
InterceptKeyPresses = 143,
ClearKeyPressesIntercepts = 144,
}
impl CommandName {
/// String value of the enum field names used in the ProtoBuf definition.
///
/// The values are not transformed in any way and thus are considered stable
/// (if the ProtoBuf definition does not change) and safe for programmatic use.
pub fn as_str_name(&self) -> &'static str {
match self {
CommandName::Subscribe => "Subscribe",
CommandName::Unsubscribe => "Unsubscribe",
CommandName::SetSelectable => "SetSelectable",
CommandName::GetPluginIds => "GetPluginIds",
CommandName::GetZellijVersion => "GetZellijVersion",
CommandName::OpenFile => "OpenFile",
CommandName::OpenFileFloating => "OpenFileFloating",
CommandName::OpenTerminal => "OpenTerminal",
CommandName::OpenTerminalFloating => "OpenTerminalFloating",
CommandName::OpenCommandPane => "OpenCommandPane",
CommandName::OpenCommandPaneFloating => "OpenCommandPaneFloating",
CommandName::SwitchTabTo => "SwitchTabTo",
CommandName::SetTimeout => "SetTimeout",
CommandName::ExecCmd => "ExecCmd",
CommandName::PostMessageTo => "PostMessageTo",
CommandName::PostMessageToPlugin => "PostMessageToPlugin",
CommandName::HideSelf => "HideSelf",
CommandName::ShowSelf => "ShowSelf",
CommandName::SwitchToMode => "SwitchToMode",
CommandName::NewTabsWithLayout => "NewTabsWithLayout",
CommandName::NewTab => "NewTab",
CommandName::GoToNextTab => "GoToNextTab",
CommandName::GoToPreviousTab => "GoToPreviousTab",
CommandName::Resize => "Resize",
CommandName::ResizeWithDirection => "ResizeWithDirection",
CommandName::FocusNextPane => "FocusNextPane",
CommandName::FocusPreviousPane => "FocusPreviousPane",
CommandName::MoveFocus => "MoveFocus",
CommandName::MoveFocusOrTab => "MoveFocusOrTab",
CommandName::Detach => "Detach",
CommandName::EditScrollback => "EditScrollback",
CommandName::Write => "Write",
CommandName::WriteChars => "WriteChars",
CommandName::ToggleTab => "ToggleTab",
CommandName::MovePane => "MovePane",
CommandName::MovePaneWithDirection => "MovePaneWithDirection",
CommandName::ClearScreen => "ClearScreen",
CommandName::ScrollUp => "ScrollUp",
CommandName::ScrollDown => "ScrollDown",
CommandName::ScrollToTop => "ScrollToTop",
CommandName::ScrollToBottom => "ScrollToBottom",
CommandName::PageScrollUp => "PageScrollUp",
CommandName::PageScrollDown => "PageScrollDown",
CommandName::ToggleFocusFullscreen => "ToggleFocusFullscreen",
CommandName::TogglePaneFrames => "TogglePaneFrames",
CommandName::TogglePaneEmbedOrEject => "TogglePaneEmbedOrEject",
CommandName::UndoRenamePane => "UndoRenamePane",
CommandName::CloseFocus => "CloseFocus",
CommandName::ToggleActiveTabSync => "ToggleActiveTabSync",
CommandName::CloseFocusedTab => "CloseFocusedTab",
CommandName::UndoRenameTab => "UndoRenameTab",
CommandName::QuitZellij => "QuitZellij",
CommandName::PreviousSwapLayout => "PreviousSwapLayout",
CommandName::NextSwapLayout => "NextSwapLayout",
CommandName::GoToTabName => "GoToTabName",
CommandName::FocusOrCreateTab => "FocusOrCreateTab",
CommandName::GoToTab => "GoToTab",
CommandName::StartOrReloadPlugin => "StartOrReloadPlugin",
CommandName::CloseTerminalPane => "CloseTerminalPane",
CommandName::ClosePluginPane => "ClosePluginPane",
CommandName::FocusTerminalPane => "FocusTerminalPane",
CommandName::FocusPluginPane => "FocusPluginPane",
CommandName::RenameTerminalPane => "RenameTerminalPane",
CommandName::RenamePluginPane => "RenamePluginPane",
CommandName::RenameTab => "RenameTab",
CommandName::ReportCrash => "ReportCrash",
CommandName::RequestPluginPermissions => "RequestPluginPermissions",
CommandName::SwitchSession => "SwitchSession",
CommandName::OpenTerminalInPlace => "OpenTerminalInPlace",
CommandName::OpenCommandInPlace => "OpenCommandInPlace",
CommandName::OpenFileInPlace => "OpenFileInPlace",
CommandName::RunCommand => "RunCommand",
CommandName::WebRequest => "WebRequest",
CommandName::DeleteDeadSession => "DeleteDeadSession",
CommandName::DeleteAllDeadSessions => "DeleteAllDeadSessions",
CommandName::RenameSession => "RenameSession",
CommandName::UnblockCliPipeInput => "UnblockCliPipeInput",
CommandName::BlockCliPipeInput => "BlockCliPipeInput",
CommandName::CliPipeOutput => "CliPipeOutput",
CommandName::MessageToPlugin => "MessageToPlugin",
CommandName::DisconnectOtherClients => "DisconnectOtherClients",
CommandName::KillSessions => "KillSessions",
CommandName::ScanHostFolder => "ScanHostFolder",
CommandName::WatchFilesystem => "WatchFilesystem",
CommandName::DumpSessionLayout => "DumpSessionLayout",
CommandName::CloseSelf => "CloseSelf",
CommandName::NewTabsWithLayoutInfo => "NewTabsWithLayoutInfo",
CommandName::Reconfigure => "Reconfigure",
CommandName::HidePaneWithId => "HidePaneWithId",
CommandName::ShowPaneWithId => "ShowPaneWithId",
CommandName::OpenCommandPaneBackground => "OpenCommandPaneBackground",
CommandName::RerunCommandPane => "RerunCommandPane",
CommandName::ResizePaneIdWithDirection => "ResizePaneIdWithDirection",
CommandName::EditScrollbackForPaneWithId => "EditScrollbackForPaneWithId",
CommandName::WriteToPaneId => "WriteToPaneId",
CommandName::WriteCharsToPaneId => "WriteCharsToPaneId",
CommandName::MovePaneWithPaneId => "MovePaneWithPaneId",
CommandName::MovePaneWithPaneIdInDirection => "MovePaneWithPaneIdInDirection",
CommandName::ClearScreenForPaneId => "ClearScreenForPaneId",
CommandName::ScrollUpInPaneId => "ScrollUpInPaneId",
CommandName::ScrollDownInPaneId => "ScrollDownInPaneId",
CommandName::ScrollToTopInPaneId => "ScrollToTopInPaneId",
CommandName::ScrollToBottomInPaneId => "ScrollToBottomInPaneId",
CommandName::PageScrollUpInPaneId => "PageScrollUpInPaneId",
CommandName::PageScrollDownInPaneId => "PageScrollDownInPaneId",
CommandName::TogglePaneIdFullscreen => "TogglePaneIdFullscreen",
CommandName::TogglePaneEmbedOrEjectForPaneId => "TogglePaneEmbedOrEjectForPaneId",
CommandName::CloseTabWithIndex => "CloseTabWithIndex",
CommandName::BreakPanesToNewTab => "BreakPanesToNewTab",
CommandName::BreakPanesToTabWithIndex => "BreakPanesToTabWithIndex",
CommandName::ReloadPlugin => "ReloadPlugin",
CommandName::LoadNewPlugin => "LoadNewPlugin",
CommandName::RebindKeys => "RebindKeys",
CommandName::ListClients => "ListClients",
CommandName::ChangeHostFolder => "ChangeHostFolder",
CommandName::SetFloatingPanePinned => "SetFloatingPanePinned",
CommandName::StackPanes => "StackPanes",
CommandName::ChangeFloatingPanesCoordinates => "ChangeFloatingPanesCoordinates",
CommandName::OpenCommandPaneNearPlugin => "OpenCommandPaneNearPlugin",
CommandName::OpenTerminalNearPlugin => "OpenTerminalNearPlugin",
CommandName::OpenTerminalFloatingNearPlugin => "OpenTerminalFloatingNearPlugin",
CommandName::OpenTerminalInPlaceOfPlugin => "OpenTerminalInPlaceOfPlugin",
CommandName::OpenCommandPaneFloatingNearPlugin => "OpenCommandPaneFloatingNearPlugin",
CommandName::OpenCommandPaneInPlaceOfPlugin => "OpenCommandPaneInPlaceOfPlugin",
CommandName::OpenFileNearPlugin => "OpenFileNearPlugin",
CommandName::OpenFileFloatingNearPlugin => "OpenFileFloatingNearPlugin",
CommandName::OpenFileInPlaceOfPlugin => "OpenFileInPlaceOfPlugin",
CommandName::StartWebServer => "StartWebServer",
CommandName::GroupAndUngroupPanes => "GroupAndUngroupPanes",
CommandName::HighlightAndUnhighlightPanes => "HighlightAndUnhighlightPanes",
CommandName::CloseMultiplePanes => "CloseMultiplePanes",
CommandName::FloatMultiplePanes => "FloatMultiplePanes",
CommandName::EmbedMultiplePanes => "EmbedMultiplePanes",
CommandName::ShareCurrentSession => "ShareCurrentSession",
CommandName::StopSharingCurrentSession => "StopSharingCurrentSession",
CommandName::StopWebServer => "StopWebServer",
CommandName::QueryWebServerStatus => "QueryWebServerStatus",
CommandName::SetSelfMouseSelectionSupport => "SetSelfMouseSelectionSupport",
CommandName::GenerateWebLoginToken => "GenerateWebLoginToken",
CommandName::RevokeWebLoginToken => "RevokeWebLoginToken",
CommandName::ListWebLoginTokens => "ListWebLoginTokens",
CommandName::RevokeAllWebLoginTokens => "RevokeAllWebLoginTokens",
CommandName::RenameWebLoginToken => "RenameWebLoginToken",
CommandName::InterceptKeyPresses => "InterceptKeyPresses",
CommandName::ClearKeyPressesIntercepts => "ClearKeyPressesIntercepts",
}
}
/// Creates an enum from field names used in the ProtoBuf definition.
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"Subscribe" => Some(Self::Subscribe),
"Unsubscribe" => Some(Self::Unsubscribe),
"SetSelectable" => Some(Self::SetSelectable),
"GetPluginIds" => Some(Self::GetPluginIds),
"GetZellijVersion" => Some(Self::GetZellijVersion),
"OpenFile" => Some(Self::OpenFile),
"OpenFileFloating" => Some(Self::OpenFileFloating),
"OpenTerminal" => Some(Self::OpenTerminal),
"OpenTerminalFloating" => Some(Self::OpenTerminalFloating),
"OpenCommandPane" => Some(Self::OpenCommandPane),
"OpenCommandPaneFloating" => Some(Self::OpenCommandPaneFloating),
"SwitchTabTo" => Some(Self::SwitchTabTo),
"SetTimeout" => Some(Self::SetTimeout),
"ExecCmd" => Some(Self::ExecCmd),
"PostMessageTo" => Some(Self::PostMessageTo),
"PostMessageToPlugin" => Some(Self::PostMessageToPlugin),
"HideSelf" => Some(Self::HideSelf),
"ShowSelf" => Some(Self::ShowSelf),
"SwitchToMode" => Some(Self::SwitchToMode),
"NewTabsWithLayout" => Some(Self::NewTabsWithLayout),
"NewTab" => Some(Self::NewTab),
"GoToNextTab" => Some(Self::GoToNextTab),
"GoToPreviousTab" => Some(Self::GoToPreviousTab),
"Resize" => Some(Self::Resize),
"ResizeWithDirection" => Some(Self::ResizeWithDirection),
"FocusNextPane" => Some(Self::FocusNextPane),
"FocusPreviousPane" => Some(Self::FocusPreviousPane),
"MoveFocus" => Some(Self::MoveFocus),
"MoveFocusOrTab" => Some(Self::MoveFocusOrTab),
"Detach" => Some(Self::Detach),
"EditScrollback" => Some(Self::EditScrollback),
"Write" => Some(Self::Write),
"WriteChars" => Some(Self::WriteChars),
"ToggleTab" => Some(Self::ToggleTab),
"MovePane" => Some(Self::MovePane),
"MovePaneWithDirection" => Some(Self::MovePaneWithDirection),
"ClearScreen" => Some(Self::ClearScreen),
"ScrollUp" => Some(Self::ScrollUp),
"ScrollDown" => Some(Self::ScrollDown),
"ScrollToTop" => Some(Self::ScrollToTop),
"ScrollToBottom" => Some(Self::ScrollToBottom),
"PageScrollUp" => Some(Self::PageScrollUp),
"PageScrollDown" => Some(Self::PageScrollDown),
"ToggleFocusFullscreen" => Some(Self::ToggleFocusFullscreen),
"TogglePaneFrames" => Some(Self::TogglePaneFrames),
"TogglePaneEmbedOrEject" => Some(Self::TogglePaneEmbedOrEject),
"UndoRenamePane" => Some(Self::UndoRenamePane),
"CloseFocus" => Some(Self::CloseFocus),
"ToggleActiveTabSync" => Some(Self::ToggleActiveTabSync),
"CloseFocusedTab" => Some(Self::CloseFocusedTab),
"UndoRenameTab" => Some(Self::UndoRenameTab),
"QuitZellij" => Some(Self::QuitZellij),
"PreviousSwapLayout" => Some(Self::PreviousSwapLayout),
"NextSwapLayout" => Some(Self::NextSwapLayout),
"GoToTabName" => Some(Self::GoToTabName),
"FocusOrCreateTab" => Some(Self::FocusOrCreateTab),
"GoToTab" => Some(Self::GoToTab),
"StartOrReloadPlugin" => Some(Self::StartOrReloadPlugin),
"CloseTerminalPane" => Some(Self::CloseTerminalPane),
"ClosePluginPane" => Some(Self::ClosePluginPane),
"FocusTerminalPane" => Some(Self::FocusTerminalPane),
"FocusPluginPane" => Some(Self::FocusPluginPane),
"RenameTerminalPane" => Some(Self::RenameTerminalPane),
"RenamePluginPane" => Some(Self::RenamePluginPane),
"RenameTab" => Some(Self::RenameTab),
"ReportCrash" => Some(Self::ReportCrash),
"RequestPluginPermissions" => Some(Self::RequestPluginPermissions),
"SwitchSession" => Some(Self::SwitchSession),
"OpenTerminalInPlace" => Some(Self::OpenTerminalInPlace),
"OpenCommandInPlace" => Some(Self::OpenCommandInPlace),
"OpenFileInPlace" => Some(Self::OpenFileInPlace),
"RunCommand" => Some(Self::RunCommand),
"WebRequest" => Some(Self::WebRequest),
"DeleteDeadSession" => Some(Self::DeleteDeadSession),
"DeleteAllDeadSessions" => Some(Self::DeleteAllDeadSessions),
"RenameSession" => Some(Self::RenameSession),
"UnblockCliPipeInput" => Some(Self::UnblockCliPipeInput),
"BlockCliPipeInput" => Some(Self::BlockCliPipeInput),
"CliPipeOutput" => Some(Self::CliPipeOutput),
"MessageToPlugin" => Some(Self::MessageToPlugin),
"DisconnectOtherClients" => Some(Self::DisconnectOtherClients),
"KillSessions" => Some(Self::KillSessions),
"ScanHostFolder" => Some(Self::ScanHostFolder),
"WatchFilesystem" => Some(Self::WatchFilesystem),
"DumpSessionLayout" => Some(Self::DumpSessionLayout),
"CloseSelf" => Some(Self::CloseSelf),
"NewTabsWithLayoutInfo" => Some(Self::NewTabsWithLayoutInfo),
"Reconfigure" => Some(Self::Reconfigure),
"HidePaneWithId" => Some(Self::HidePaneWithId),
"ShowPaneWithId" => Some(Self::ShowPaneWithId),
"OpenCommandPaneBackground" => Some(Self::OpenCommandPaneBackground),
"RerunCommandPane" => Some(Self::RerunCommandPane),
"ResizePaneIdWithDirection" => Some(Self::ResizePaneIdWithDirection),
"EditScrollbackForPaneWithId" => Some(Self::EditScrollbackForPaneWithId),
"WriteToPaneId" => Some(Self::WriteToPaneId),
"WriteCharsToPaneId" => Some(Self::WriteCharsToPaneId),
"MovePaneWithPaneId" => Some(Self::MovePaneWithPaneId),
"MovePaneWithPaneIdInDirection" => Some(Self::MovePaneWithPaneIdInDirection),
"ClearScreenForPaneId" => Some(Self::ClearScreenForPaneId),
"ScrollUpInPaneId" => Some(Self::ScrollUpInPaneId),
"ScrollDownInPaneId" => Some(Self::ScrollDownInPaneId),
"ScrollToTopInPaneId" => Some(Self::ScrollToTopInPaneId),
"ScrollToBottomInPaneId" => Some(Self::ScrollToBottomInPaneId),
"PageScrollUpInPaneId" => Some(Self::PageScrollUpInPaneId),
"PageScrollDownInPaneId" => Some(Self::PageScrollDownInPaneId),
"TogglePaneIdFullscreen" => Some(Self::TogglePaneIdFullscreen),
"TogglePaneEmbedOrEjectForPaneId" => Some(Self::TogglePaneEmbedOrEjectForPaneId),
"CloseTabWithIndex" => Some(Self::CloseTabWithIndex),
"BreakPanesToNewTab" => Some(Self::BreakPanesToNewTab),
"BreakPanesToTabWithIndex" => Some(Self::BreakPanesToTabWithIndex),
"ReloadPlugin" => Some(Self::ReloadPlugin),
"LoadNewPlugin" => Some(Self::LoadNewPlugin),
"RebindKeys" => Some(Self::RebindKeys),
"ListClients" => Some(Self::ListClients),
"ChangeHostFolder" => Some(Self::ChangeHostFolder),
"SetFloatingPanePinned" => Some(Self::SetFloatingPanePinned),
"StackPanes" => Some(Self::StackPanes),
"ChangeFloatingPanesCoordinates" => Some(Self::ChangeFloatingPanesCoordinates),
"OpenCommandPaneNearPlugin" => Some(Self::OpenCommandPaneNearPlugin),
"OpenTerminalNearPlugin" => Some(Self::OpenTerminalNearPlugin),
"OpenTerminalFloatingNearPlugin" => Some(Self::OpenTerminalFloatingNearPlugin),
"OpenTerminalInPlaceOfPlugin" => Some(Self::OpenTerminalInPlaceOfPlugin),
"OpenCommandPaneFloatingNearPlugin" => Some(Self::OpenCommandPaneFloatingNearPlugin),
"OpenCommandPaneInPlaceOfPlugin" => Some(Self::OpenCommandPaneInPlaceOfPlugin),
"OpenFileNearPlugin" => Some(Self::OpenFileNearPlugin),
"OpenFileFloatingNearPlugin" => Some(Self::OpenFileFloatingNearPlugin),
"OpenFileInPlaceOfPlugin" => Some(Self::OpenFileInPlaceOfPlugin),
"StartWebServer" => Some(Self::StartWebServer),
"GroupAndUngroupPanes" => Some(Self::GroupAndUngroupPanes),
"HighlightAndUnhighlightPanes" => Some(Self::HighlightAndUnhighlightPanes),
"CloseMultiplePanes" => Some(Self::CloseMultiplePanes),
"FloatMultiplePanes" => Some(Self::FloatMultiplePanes),
"EmbedMultiplePanes" => Some(Self::EmbedMultiplePanes),
"ShareCurrentSession" => Some(Self::ShareCurrentSession),
"StopSharingCurrentSession" => Some(Self::StopSharingCurrentSession),
"StopWebServer" => Some(Self::StopWebServer),
"QueryWebServerStatus" => Some(Self::QueryWebServerStatus),
"SetSelfMouseSelectionSupport" => Some(Self::SetSelfMouseSelectionSupport),
"GenerateWebLoginToken" => Some(Self::GenerateWebLoginToken),
"RevokeWebLoginToken" => Some(Self::RevokeWebLoginToken),
"ListWebLoginTokens" => Some(Self::ListWebLoginTokens),
"RevokeAllWebLoginTokens" => Some(Self::RevokeAllWebLoginTokens),
"RenameWebLoginToken" => Some(Self::RenameWebLoginToken),
"InterceptKeyPresses" => Some(Self::InterceptKeyPresses),
"ClearKeyPressesIntercepts" => Some(Self::ClearKeyPressesIntercepts),
_ => None,
}
}
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum PaneType {
Terminal = 0,
Plugin = 1,
}
impl PaneType {
/// String value of the enum field names used in the ProtoBuf definition.
///
/// The values are not transformed in any way and thus are considered stable
/// (if the ProtoBuf definition does not change) and safe for programmatic use.
pub fn as_str_name(&self) -> &'static str {
match self {
PaneType::Terminal => "Terminal",
PaneType::Plugin => "Plugin",
}
}
/// Creates an enum from field names used in the ProtoBuf definition.
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"Terminal" => Some(Self::Terminal),
"Plugin" => Some(Self::Plugin),
_ => None,
}
}
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum HttpVerb {
Get = 0,
Post = 1,
Put = 2,
Delete = 3,
}
impl HttpVerb {
/// String value of the enum field names used in the ProtoBuf definition.
///
/// The values are not transformed in any way and thus are considered stable
/// (if the ProtoBuf definition does not change) and safe for programmatic use.
pub fn as_str_name(&self) -> &'static str {
match self {
HttpVerb::Get => "Get",
HttpVerb::Post => "Post",
HttpVerb::Put => "Put",
HttpVerb::Delete => "Delete",
}
}
/// Creates an enum from field names used in the ProtoBuf definition.
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"Get" => Some(Self::Get),
"Post" => Some(Self::Post),
"Put" => Some(Self::Put),
"Delete" => Some(Self::Delete),
_ => None,
}
}
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum FixedOrPercent {
Fixed = 0,
Percent = 1,
}
impl FixedOrPercent {
/// String value of the enum field names used in the ProtoBuf definition.
///
/// The values are not transformed in any way and thus are considered stable
/// (if the ProtoBuf definition does not change) and safe for programmatic use.
pub fn as_str_name(&self) -> &'static str {
match self {
FixedOrPercent::Fixed => "Fixed",
FixedOrPercent::Percent => "Percent",
}
}
/// Creates an enum from field names used in the ProtoBuf definition.
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"Fixed" => Some(Self::Fixed),
"Percent" => Some(Self::Percent),
_ => None,
}
}
}