123456789101112131415 |
- extern crate proc_macro;
- use anchor_syn::codegen::accounts as accounts_codegen;
- use anchor_syn::parser::accounts as accounts_parser;
- use proc_macro::TokenStream;
- use syn::parse_macro_input;
- /// Implements an `Accounts` deserializer on the given struct, applying any
- /// constraints specified via `#[account]` attributes.
- #[proc_macro_derive(Accounts, attributes(account))]
- pub fn derive_anchor_deserialize(item: TokenStream) -> TokenStream {
- let strct = parse_macro_input!(item as syn::ItemStruct);
- let tts = accounts_codegen::generate(accounts_parser::parse(&strct));
- proc_macro::TokenStream::from(tts)
- }
|