zellij_utils/plugin_api/
plugin_ids.rs

1pub 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        })
17    }
18}
19
20impl TryFrom<PluginIds> for ProtobufPluginIds {
21    type Error = &'static str;
22    fn try_from(plugin_ids: PluginIds) -> Result<Self, &'static str> {
23        Ok(ProtobufPluginIds {
24            plugin_id: plugin_ids.plugin_id as i32,
25            zellij_pid: plugin_ids.zellij_pid as i32,
26            initial_cwd: plugin_ids.initial_cwd.display().to_string(),
27        })
28    }
29}
30
31impl TryFrom<&str> for ProtobufZellijVersion {
32    type Error = &'static str;
33    fn try_from(zellij_version: &str) -> Result<Self, &'static str> {
34        Ok(ProtobufZellijVersion {
35            version: zellij_version.to_owned(),
36        })
37    }
38}