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            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}