spl_discriminator_derive/
lib.rs

1//! Derive macro library for the `spl-discriminator` library
2
3#![deny(missing_docs)]
4#![cfg_attr(not(test), forbid(unsafe_code))]
5
6extern crate proc_macro;
7
8use {
9    proc_macro::TokenStream, quote::ToTokens, spl_discriminator_syn::SplDiscriminateBuilder,
10    syn::parse_macro_input,
11};
12
13/// Derive macro library to implement the `SplDiscriminate` trait
14/// on an enum or struct
15#[proc_macro_derive(SplDiscriminate, attributes(discriminator_hash_input))]
16pub fn spl_discriminator(input: TokenStream) -> TokenStream {
17    parse_macro_input!(input as SplDiscriminateBuilder)
18        .to_token_stream()
19        .into()
20}