trident_derive_instruction/
lib.rs1use proc_macro::TokenStream;
2use quote::ToTokens;
3use syn::parse_macro_input;
4use trident_syn::parser::trident_instruction::parse_trident_instruction;
5
6#[proc_macro_derive(TridentInstruction, attributes(program_id, discriminator))]
7pub fn derive_trident_instruction(input: TokenStream) -> TokenStream {
8 let input = parse_macro_input!(input);
9
10 match parse_trident_instruction(&input) {
11 Ok(instruction) => instruction.to_token_stream().into(),
12 Err(err) => err.to_compile_error().into(),
13 }
14}