rusty_cdk_core/shared/
macros.rs

1#[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]
57macro_rules! type_state {
58    ($state_trait:ident,$($structs:ident,)*) => {
59        pub trait $state_trait {}
60        $(pub struct $structs {})*
61        $(impl $state_trait for $structs {})*
62    };
63}