Skip to main content

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            ProtobufPermissionType::FullHdAccess => Ok(PermissionType::FullHdAccess),
29            ProtobufPermissionType::StartWebServer => Ok(PermissionType::StartWebServer),
30            ProtobufPermissionType::InterceptInput => Ok(PermissionType::InterceptInput),
31            ProtobufPermissionType::ReadPaneContents => Ok(PermissionType::ReadPaneContents),
32            ProtobufPermissionType::RunActionsAsUser => Ok(PermissionType::RunActionsAsUser),
33            ProtobufPermissionType::WriteToClipboard => Ok(PermissionType::WriteToClipboard),
34            ProtobufPermissionType::ReadSessionEnvironmentVariables => {
35                Ok(PermissionType::ReadSessionEnvironmentVariables)
36            },
37        }
38    }
39}
40
41impl TryFrom<PermissionType> for ProtobufPermissionType {
42    type Error = &'static str;
43    fn try_from(permission: PermissionType) -> Result<Self, &'static str> {
44        match permission {
45            PermissionType::ReadApplicationState => {
46                Ok(ProtobufPermissionType::ReadApplicationState)
47            },
48            PermissionType::ChangeApplicationState => {
49                Ok(ProtobufPermissionType::ChangeApplicationState)
50            },
51            PermissionType::OpenFiles => Ok(ProtobufPermissionType::OpenFiles),
52            PermissionType::RunCommands => Ok(ProtobufPermissionType::RunCommands),
53            PermissionType::OpenTerminalsOrPlugins => {
54                Ok(ProtobufPermissionType::OpenTerminalsOrPlugins)
55            },
56            PermissionType::WriteToStdin => Ok(ProtobufPermissionType::WriteToStdin),
57            PermissionType::WebAccess => Ok(ProtobufPermissionType::WebAccess),
58            PermissionType::ReadCliPipes => Ok(ProtobufPermissionType::ReadCliPipes),
59            PermissionType::MessageAndLaunchOtherPlugins => {
60                Ok(ProtobufPermissionType::MessageAndLaunchOtherPlugins)
61            },
62            PermissionType::Reconfigure => Ok(ProtobufPermissionType::Reconfigure),
63            PermissionType::FullHdAccess => Ok(ProtobufPermissionType::FullHdAccess),
64            PermissionType::StartWebServer => Ok(ProtobufPermissionType::StartWebServer),
65            PermissionType::InterceptInput => Ok(ProtobufPermissionType::InterceptInput),
66            PermissionType::ReadPaneContents => Ok(ProtobufPermissionType::ReadPaneContents),
67            PermissionType::RunActionsAsUser => Ok(ProtobufPermissionType::RunActionsAsUser),
68            PermissionType::WriteToClipboard => Ok(ProtobufPermissionType::WriteToClipboard),
69            PermissionType::ReadSessionEnvironmentVariables => {
70                Ok(ProtobufPermissionType::ReadSessionEnvironmentVariables)
71            },
72        }
73    }
74}