summaryrefslogtreecommitdiffstats
path: root/zellij-utils/src/plugin_api/plugin_permission.rs
diff options
context:
space:
mode:
Diffstat (limited to 'zellij-utils/src/plugin_api/plugin_permission.rs')
-rw-r--r--zellij-utils/src/plugin_api/plugin_permission.rs44
1 files changed, 44 insertions, 0 deletions
diff --git a/zellij-utils/src/plugin_api/plugin_permission.rs b/zellij-utils/src/plugin_api/plugin_permission.rs
new file mode 100644
index 000000000..d2839face
--- /dev/null
+++ b/zellij-utils/src/plugin_api/plugin_permission.rs
@@ -0,0 +1,44 @@
+pub use super::generated_api::api::plugin_permission::PermissionType as ProtobufPermissionType;
+use crate::data::PermissionType;
+
+use std::convert::TryFrom;
+
+impl TryFrom<ProtobufPermissionType> for PermissionType {
+ type Error = &'static str;
+ fn try_from(protobuf_permission: ProtobufPermissionType) -> Result<Self, &'static str> {
+ match protobuf_permission {
+ ProtobufPermissionType::ReadApplicationState => {
+ Ok(PermissionType::ReadApplicationState)
+ },
+ ProtobufPermissionType::ChangeApplicationState => {
+ Ok(PermissionType::ChangeApplicationState)
+ },
+ ProtobufPermissionType::OpenFiles => Ok(PermissionType::OpenFiles),
+ ProtobufPermissionType::RunCommands => Ok(PermissionType::RunCommands),
+ ProtobufPermissionType::OpenTerminalsOrPlugins => {
+ Ok(PermissionType::OpenTerminalsOrPlugins)
+ },
+ ProtobufPermissionType::WriteToStdin => Ok(PermissionType::WriteToStdin),
+ }
+ }
+}
+
+impl TryFrom<PermissionType> for ProtobufPermissionType {
+ type Error = &'static str;
+ fn try_from(permission: PermissionType) -> Result<Self, &'static str> {
+ match permission {
+ PermissionType::ReadApplicationState => {
+ Ok(ProtobufPermissionType::ReadApplicationState)
+ },
+ PermissionType::ChangeApplicationState => {
+ Ok(ProtobufPermissionType::ChangeApplicationState)
+ },
+ PermissionType::OpenFiles => Ok(ProtobufPermissionType::OpenFiles),
+ PermissionType::RunCommands => Ok(ProtobufPermissionType::RunCommands),
+ PermissionType::OpenTerminalsOrPlugins => {
+ Ok(ProtobufPermissionType::OpenTerminalsOrPlugins)
+ },
+ PermissionType::WriteToStdin => Ok(ProtobufPermissionType::WriteToStdin),
+ }
+ }
+}