lit_node_core/traits/
lit_resource.rs1use std::fmt::Debug;
2
3use crate::{
4 AccessControlConditionResource, LitActionResource, LitResourcePrefix, PKPNFTResource,
5 PaymentDelegationResource,
6};
7
8pub trait LitResource: Debug {
9 fn get_resource_key(&self) -> String {
12 format!(
13 "{}://{}",
14 self.get_resource_prefix(),
15 self.get_resource_id()
16 )
17 }
18
19 fn get_resource_id(&self) -> &String;
21
22 fn get_resource_prefix(&self) -> LitResourcePrefix;
24}
25
26impl LitResource for AccessControlConditionResource {
27 fn get_resource_id(&self) -> &String {
28 self.get_resource_id()
29 }
30
31 fn get_resource_prefix(&self) -> LitResourcePrefix {
32 LitResourcePrefix::ACC
33 }
34}
35
36impl LitResource for PKPNFTResource {
37 fn get_resource_id(&self) -> &String {
38 self.get_resource_id()
39 }
40
41 fn get_resource_prefix(&self) -> LitResourcePrefix {
42 LitResourcePrefix::PKP
43 }
44}
45
46impl LitResource for LitActionResource {
47 fn get_resource_id(&self) -> &String {
48 self.get_resource_id()
49 }
50
51 fn get_resource_prefix(&self) -> LitResourcePrefix {
52 LitResourcePrefix::LA
53 }
54}
55
56impl LitResource for PaymentDelegationResource {
57 fn get_resource_id(&self) -> &String {
58 self.get_resource_id()
59 }
60
61 fn get_resource_prefix(&self) -> LitResourcePrefix {
62 LitResourcePrefix::PD
63 }
64}