lightspark/objects/
permission.rs1use serde::{Deserialize, Serialize};
3use serde_json::Value;
4use std::fmt;
5
6#[derive(Debug, Clone, Deserialize, Serialize)]
8pub enum Permission {
9 #[serde(rename = "ALL")]
10 All,
11
12 #[serde(rename = "MAINNET_VIEW")]
13 MainnetView,
14
15 #[serde(rename = "MAINNET_TRANSACT")]
16 MainnetTransact,
17
18 #[serde(rename = "MAINNET_MANAGE")]
19 MainnetManage,
20
21 #[serde(rename = "TESTNET_VIEW")]
22 TestnetView,
23
24 #[serde(rename = "TESTNET_TRANSACT")]
25 TestnetTransact,
26
27 #[serde(rename = "TESTNET_MANAGE")]
28 TestnetManage,
29
30 #[serde(rename = "REGTEST_VIEW")]
31 RegtestView,
32
33 #[serde(rename = "REGTEST_TRANSACT")]
34 RegtestTransact,
35
36 #[serde(rename = "REGTEST_MANAGE")]
37 RegtestManage,
38
39 #[serde(rename = "SIGNET_VIEW")]
40 SignetView,
41
42 #[serde(rename = "SIGNET_TRANSACT")]
43 SignetTransact,
44
45 #[serde(rename = "SIGNET_MANAGE")]
46 SignetManage,
47
48 #[serde(rename = "USER_VIEW")]
49 UserView,
50
51 #[serde(rename = "USER_MANAGE")]
52 UserManage,
53
54 #[serde(rename = "ACCOUNT_VIEW")]
55 AccountView,
56
57 #[serde(rename = "ACCOUNT_MANAGE")]
58 AccountManage,
59}
60
61impl From<Permission> for Value {
62 fn from(val: Permission) -> Self {
63 Value::from(val.to_string())
64 }
65}
66
67impl fmt::Display for Permission {
68 fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
69 match self {
70 Self::All => write!(f, "ALL"),
71 Self::MainnetView => write!(f, "MAINNET_VIEW"),
72 Self::MainnetTransact => write!(f, "MAINNET_TRANSACT"),
73 Self::MainnetManage => write!(f, "MAINNET_MANAGE"),
74 Self::TestnetView => write!(f, "TESTNET_VIEW"),
75 Self::TestnetTransact => write!(f, "TESTNET_TRANSACT"),
76 Self::TestnetManage => write!(f, "TESTNET_MANAGE"),
77 Self::RegtestView => write!(f, "REGTEST_VIEW"),
78 Self::RegtestTransact => write!(f, "REGTEST_TRANSACT"),
79 Self::RegtestManage => write!(f, "REGTEST_MANAGE"),
80 Self::SignetView => write!(f, "SIGNET_VIEW"),
81 Self::SignetTransact => write!(f, "SIGNET_TRANSACT"),
82 Self::SignetManage => write!(f, "SIGNET_MANAGE"),
83 Self::UserView => write!(f, "USER_VIEW"),
84 Self::UserManage => write!(f, "USER_MANAGE"),
85 Self::AccountView => write!(f, "ACCOUNT_VIEW"),
86 Self::AccountManage => write!(f, "ACCOUNT_MANAGE"),
87 }
88 }
89}