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