diff options
Diffstat (limited to 'zellij-utils/src/plugin_api/plugin_command.rs')
-rw-r--r-- | zellij-utils/src/plugin_api/plugin_command.rs | 29 |
1 files changed, 26 insertions, 3 deletions
diff --git a/zellij-utils/src/plugin_api/plugin_command.rs b/zellij-utils/src/plugin_api/plugin_command.rs index 080dd9e28..771b61517 100644 --- a/zellij-utils/src/plugin_api/plugin_command.rs +++ b/zellij-utils/src/plugin_api/plugin_command.rs @@ -8,9 +8,9 @@ pub use super::generated_api::api::{ FixedOrPercentValue as ProtobufFixedOrPercentValue, FloatingPaneCoordinates as ProtobufFloatingPaneCoordinates, HttpVerb as ProtobufHttpVerb, IdAndNewName, KillSessionsPayload, MessageToPluginPayload, MovePayload, - NewPluginArgs as ProtobufNewPluginArgs, OpenCommandPanePayload, OpenFilePayload, - PaneId as ProtobufPaneId, PaneType as ProtobufPaneType, - PluginCommand as ProtobufPluginCommand, PluginMessagePayload, + NewPluginArgs as ProtobufNewPluginArgs, NewTabsWithLayoutInfoPayload, + OpenCommandPanePayload, OpenFilePayload, PaneId as ProtobufPaneId, + PaneType as ProtobufPaneType, PluginCommand as ProtobufPluginCommand, PluginMessagePayload, RequestPluginPermissionPayload, ResizePayload, RunCommandPayload, SetTimeoutPayload, SubscribePayload, SwitchSessionPayload, SwitchTabToPayload, UnsubscribePayload, WebRequestPayload, @@ -875,6 +875,19 @@ impl TryFrom<ProtobufPluginCommand> for PluginCommand { Some(_) => Err("CloseSelf should have no payload, found a payload"), None => Ok(PluginCommand::CloseSelf), }, + Some(CommandName::NewTabsWithLayoutInfo) => match protobuf_plugin_command.payload { + Some(Payload::NewTabsWithLayoutInfoPayload(new_tabs_with_layout_info_payload)) => { + new_tabs_with_layout_info_payload + .layout_info + .and_then(|layout_info| { + Some(PluginCommand::NewTabsWithLayoutInfo( + layout_info.try_into().ok()?, + )) + }) + .ok_or("Failed to parse NewTabsWithLayoutInfo command") + }, + _ => Err("Mismatched payload for NewTabsWithLayoutInfo"), + }, None => Err("Unrecognized plugin command"), } } @@ -1397,6 +1410,16 @@ impl TryFrom<PluginCommand> for ProtobufPluginCommand { name: CommandName::CloseSelf as i32, payload: None, }), + PluginCommand::NewTabsWithLayoutInfo(new_tabs_with_layout_info_payload) => { + Ok(ProtobufPluginCommand { + name: CommandName::NewTabsWithLayoutInfo as i32, + payload: Some(Payload::NewTabsWithLayoutInfoPayload( + NewTabsWithLayoutInfoPayload { + layout_info: new_tabs_with_layout_info_payload.try_into().ok(), + }, + )), + }) + }, } } } |