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