diff options
Diffstat (limited to 'zellij-utils/src/plugin_api/plugin_permission.rs')
-rw-r--r-- | zellij-utils/src/plugin_api/plugin_permission.rs | 44 |
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), + } + } +} |