aboutsummaryrefslogtreecommitdiffstats
path: root/zellij-utils/src/plugin_api/plugin_ids.rs
diff options
context:
space:
mode:
authorAram Drevekenin <aram@poor.dev>2023-08-09 22:26:00 +0200
committerGitHub <noreply@github.com>2023-08-09 22:26:00 +0200
commit1bedfc90021558cb201695444107afe5bddd2c17 (patch)
tree38dd31b5ab112aa9b1c3a54edb07331013bf7d87 /zellij-utils/src/plugin_api/plugin_ids.rs
parentdocs(changelog): plug memory leak (diff)
downloadsl0ppij-1bedfc90021558cb201695444107afe5bddd2c17.tar.gz
sl0ppij-1bedfc90021558cb201695444107afe5bddd2c17.tar.xz
sl0ppij-1bedfc90021558cb201695444107afe5bddd2c17.zip
feat(plugins): use protocol buffers for serializing across the wasm boundary (#2686)
* work * almost done with command protobuffers * done translating command data structures * mid transferring of every command to protobuff command * transferred plugin_command.rs, now moving on to shim.rs * plugin command working with protobufs * protobuffers in update * protobuf event tests * various TODOs and comments * fix zellij-tile * clean up prost deps * remove version mismatch error * fix panic * some cleanups * clean up event protobuffers * clean up command protobuffers * clean up various protobufs * refactor protobufs * update comments * some transformation fixes * use protobufs for workers * style(fmt): rustfmt * style(fmt): rustfmt * chore(build): add protoc * chore(build): authenticate protoc
Diffstat (limited to 'zellij-utils/src/plugin_api/plugin_ids.rs')
-rw-r--r--zellij-utils/src/plugin_api/plugin_ids.rs35
1 files changed, 35 insertions, 0 deletions
diff --git a/zellij-utils/src/plugin_api/plugin_ids.rs b/zellij-utils/src/plugin_api/plugin_ids.rs
new file mode 100644
index 00000000..51f526c6
--- /dev/null
+++ b/zellij-utils/src/plugin_api/plugin_ids.rs
@@ -0,0 +1,35 @@
+pub use super::generated_api::api::plugin_ids::{
+ PluginIds as ProtobufPluginIds, ZellijVersion as ProtobufZellijVersion,
+};
+use crate::data::PluginIds;
+
+use std::convert::TryFrom;
+
+impl TryFrom<ProtobufPluginIds> for PluginIds {
+ type Error = &'static str;
+ fn try_from(protobuf_plugin_ids: ProtobufPluginIds) -> Result<Self, &'static str> {
+ Ok(PluginIds {
+ plugin_id: protobuf_plugin_ids.plugin_id as u32,
+ zellij_pid: protobuf_plugin_ids.zellij_pid as u32,
+ })
+ }
+}
+
+impl TryFrom<PluginIds> for ProtobufPluginIds {
+ type Error = &'static str;
+ fn try_from(plugin_ids: PluginIds) -> Result<Self, &'static str> {
+ Ok(ProtobufPluginIds {
+ plugin_id: plugin_ids.plugin_id as i32,
+ zellij_pid: plugin_ids.zellij_pid as i32,
+ })
+ }
+}
+
+impl TryFrom<&str> for ProtobufZellijVersion {
+ type Error = &'static str;
+ fn try_from(zellij_version: &str) -> Result<Self, &'static str> {
+ Ok(ProtobufZellijVersion {
+ version: zellij_version.to_owned(),
+ })
+ }
+}