zellij_utils/plugin_api/
plugin_permission.rs1pub use super::generated_api::api::plugin_permission::PermissionType as ProtobufPermissionType;
2use crate::data::PermissionType;
3
4use std::convert::TryFrom;
5
6impl TryFrom<ProtobufPermissionType> for PermissionType {
7 type Error = &'static str;
8 fn try_from(protobuf_permission: ProtobufPermissionType) -> Result<Self, &'static str> {
9 match protobuf_permission {
10 ProtobufPermissionType::ReadApplicationState => {
11 Ok(PermissionType::ReadApplicationState)
12 },
13 ProtobufPermissionType::ChangeApplicationState => {
14 Ok(PermissionType::ChangeApplicationState)
15 },
16 ProtobufPermissionType::OpenFiles => Ok(PermissionType::OpenFiles),
17 ProtobufPermissionType::RunCommands => Ok(PermissionType::RunCommands),
18 ProtobufPermissionType::OpenTerminalsOrPlugins => {
19 Ok(PermissionType::OpenTerminalsOrPlugins)
20 },
21 ProtobufPermissionType::WriteToStdin => Ok(PermissionType::WriteToStdin),
22 ProtobufPermissionType::WebAccess => Ok(PermissionType::WebAccess),
23 ProtobufPermissionType::ReadCliPipes => Ok(PermissionType::ReadCliPipes),
24 ProtobufPermissionType::MessageAndLaunchOtherPlugins => {
25 Ok(PermissionType::MessageAndLaunchOtherPlugins)
26 },
27 ProtobufPermissionType::Reconfigure => Ok(PermissionType::Reconfigure),
28 }
29 }
30}
31
32impl TryFrom<PermissionType> for ProtobufPermissionType {
33 type Error = &'static str;
34 fn try_from(permission: PermissionType) -> Result<Self, &'static str> {
35 match permission {
36 PermissionType::ReadApplicationState => {
37 Ok(ProtobufPermissionType::ReadApplicationState)
38 },
39 PermissionType::ChangeApplicationState => {
40 Ok(ProtobufPermissionType::ChangeApplicationState)
41 },
42 PermissionType::OpenFiles => Ok(ProtobufPermissionType::OpenFiles),
43 PermissionType::RunCommands => Ok(ProtobufPermissionType::RunCommands),
44 PermissionType::OpenTerminalsOrPlugins => {
45 Ok(ProtobufPermissionType::OpenTerminalsOrPlugins)
46 },
47 PermissionType::WriteToStdin => Ok(ProtobufPermissionType::WriteToStdin),
48 PermissionType::WebAccess => Ok(ProtobufPermissionType::WebAccess),
49 PermissionType::ReadCliPipes => Ok(ProtobufPermissionType::ReadCliPipes),
50 PermissionType::MessageAndLaunchOtherPlugins => {
51 Ok(ProtobufPermissionType::MessageAndLaunchOtherPlugins)
52 },
53 PermissionType::Reconfigure => Ok(ProtobufPermissionType::Reconfigure),
54 }
55 }
56}