1use proc_macro::TokenStream;
2use syn::parse_macro_input;
3use crate::parsing::GenericInput;
4use crate::roles::{find_kms_ref, find_role_ref};
5
6mod roles;
7mod cloudcontrol;
8mod parsing;
9
10#[proc_macro]
15pub fn lookup_role_ref(input: TokenStream) -> TokenStream {
16 let input: GenericInput = parse_macro_input!(input);
17
18 let rt = tokio::runtime::Runtime::new().unwrap();
19
20 rt.block_on(find_role_ref(&input.resource_id, &input.identifier)).unwrap_or_else(|e| e.into_compile_error().into())
21}
22
23#[proc_macro]
28pub fn lookup_kms_key_ref(input: TokenStream) -> TokenStream {
29 let input: GenericInput = parse_macro_input!(input);
30
31 let rt = tokio::runtime::Runtime::new().unwrap();
32
33 rt.block_on(find_kms_ref(&input.resource_id, &input.identifier)).unwrap_or_else(|e| e.into_compile_error().into())
34}