1#[macro_use]
4extern crate quote;
5
6mod business_context_element;
7mod dmn_element;
8mod expression;
9mod named_element;
10mod utils;
11
12use proc_macro::TokenStream;
13
14#[proc_macro_derive(ToErrorMessage)]
15pub fn to_error_message(input: TokenStream) -> TokenStream {
16 let input = syn::parse_macro_input!(input as syn::DeriveInput);
17 let name = &input.ident;
18 let expanded = quote! {
19 impl ToErrorMessage for #name {
20 fn message(self) -> String {
21 self.0
22 }
23 }
24 };
25 TokenStream::from(expanded)
26}
27
28#[proc_macro_attribute]
30pub fn named_element(_input: TokenStream, item: TokenStream) -> TokenStream {
31 named_element::process(item.into()).into()
32}
33
34#[proc_macro_attribute]
36pub fn dmn_element(_: TokenStream, item: TokenStream) -> TokenStream {
37 dmn_element::process(item.into()).into()
38}
39
40#[proc_macro_attribute]
42pub fn business_context_element(_: TokenStream, item: TokenStream) -> TokenStream {
43 business_context_element::process(item.into()).into()
44}
45
46#[proc_macro_attribute]
48pub fn expression(_input: TokenStream, item: TokenStream) -> TokenStream {
49 expression::process(item.into()).into()
50}