trident_derive_transaction/
lib.rs1use proc_macro::TokenStream;
2use quote::ToTokens;
3use syn::parse_macro_input;
4use syn::ItemStruct;
5use trident_syn::parser::trident_transaction::parse_trident_transaction;
6
7#[proc_macro_derive(TridentTransaction)]
8pub fn derive_trident_transaction(input: TokenStream) -> TokenStream {
9 let item_struct = parse_macro_input!(input as ItemStruct);
10
11 match parse_trident_transaction(&item_struct) {
12 Ok(transaction) => transaction.to_token_stream().into(),
13 Err(err) => err.to_compile_error().into(),
14 }
15}