zellij_utils/plugin_api/
plugin_ids.rs1pub use super::generated_api::api::plugin_ids::{
2 PluginIds as ProtobufPluginIds, ZellijVersion as ProtobufZellijVersion,
3};
4use crate::data::PluginIds;
5
6use std::convert::TryFrom;
7use std::path::PathBuf;
8
9impl TryFrom<ProtobufPluginIds> for PluginIds {
10 type Error = &'static str;
11 fn try_from(protobuf_plugin_ids: ProtobufPluginIds) -> Result<Self, &'static str> {
12 Ok(PluginIds {
13 plugin_id: protobuf_plugin_ids.plugin_id as u32,
14 zellij_pid: protobuf_plugin_ids.zellij_pid as u32,
15 initial_cwd: PathBuf::from(protobuf_plugin_ids.initial_cwd),
16 client_id: protobuf_plugin_ids.client_id as u16,
17 })
18 }
19}
20
21impl TryFrom<PluginIds> for ProtobufPluginIds {
22 type Error = &'static str;
23 fn try_from(plugin_ids: PluginIds) -> Result<Self, &'static str> {
24 Ok(ProtobufPluginIds {
25 plugin_id: plugin_ids.plugin_id as i32,
26 zellij_pid: plugin_ids.zellij_pid as i32,
27 initial_cwd: plugin_ids.initial_cwd.display().to_string(),
28 client_id: plugin_ids.client_id as u32,
29 })
30 }
31}
32
33impl TryFrom<&str> for ProtobufZellijVersion {
34 type Error = &'static str;
35 fn try_from(zellij_version: &str) -> Result<Self, &'static str> {
36 Ok(ProtobufZellijVersion {
37 version: zellij_version.to_owned(),
38 })
39 }
40}