zellij_utils/plugin_api/
plugin_permission.rs

1pub 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}