rusty_cdk_core/shared/
macros.rs1#[macro_export]
2macro_rules! dto_methods {
3 ($name:ident) => {
4 impl $name {
5 #[allow(dead_code)]
6 pub fn get_id(&self) -> &Id {
7 &self.id
8 }
9
10 #[allow(dead_code)]
11 pub fn get_resource_id(&self) -> &str {
12 self.resource_id.as_str()
13 }
14 }
15 };
16}
17
18#[macro_export]
19macro_rules! ref_struct {
20 ($name:ident) => {
21 pub struct $name {
22 resource_id: String,
23 }
24
25 impl $name {
26 #[allow(dead_code)]
27 pub fn new(resource_id: String) -> Self {
28 Self {
29 resource_id,
30 }
31 }
32
33 #[allow(dead_code)]
34 pub fn get_resource_id(&self) -> &str {
35 self.resource_id.as_str()
36 }
37
38 #[allow(dead_code)]
39 pub fn get_ref(&self) -> Value {
40 $crate::intrinsic::get_ref(self.get_resource_id())
41 }
42
43 #[allow(dead_code)]
44 pub fn get_arn(&self) -> Value {
45 $crate::intrinsic::get_arn(self.get_resource_id())
46 }
47
48 #[allow(dead_code)]
49 pub fn get_att(&self, id: &str) -> Value {
50 $crate::intrinsic::get_att(self.get_resource_id(), id)
51 }
52 }
53 };
54}
55
56#[macro_export]
59macro_rules! ref_struct_with_id_methods {
60 ($name:ident) => {
61 pub struct $name {
62 id: Id,
63 resource_id: String,
64 }
65
66 impl $name {
67 #[allow(dead_code)]
68 pub fn new(id: Id, resource_id: String) -> Self {
69 Self {
70 id,
71 resource_id,
72 }
73 }
74
75 #[allow(dead_code)]
76 pub fn get_id(&self) -> &Id {
77 &self.id
78 }
79
80 #[allow(dead_code)]
81 pub fn get_resource_id(&self) -> &str {
82 self.resource_id.as_str()
83 }
84
85 #[allow(dead_code)]
86 pub fn get_ref(&self) -> Value {
87 $crate::intrinsic::get_ref(self.get_resource_id())
88 }
89
90 #[allow(dead_code)]
91 pub fn get_arn(&self) -> Value {
92 $crate::intrinsic::get_arn(self.get_resource_id())
93 }
94
95 #[allow(dead_code)]
96 pub fn get_att(&self, id: &str) -> Value {
97 $crate::intrinsic::get_att(self.get_resource_id(), id)
98 }
99 }
100 };
101}
102
103#[macro_export]
104macro_rules! type_state {
105 ($state_trait:ident,$($structs:ident,)*) => {
106 pub trait $state_trait {}
107 $(pub struct $structs {})*
108 $(impl $state_trait for $structs {})*
109 };
110}