ircv3_parse_derive 4.0.0

Derive macro for ircv3_parse
Documentation
#![doc = include_str!("../README.md")]

mod ast;
mod attr;
mod component_set;
mod error_msg;
mod expand;
mod type_check;
mod valid;

use proc_macro::TokenStream;
use syn::{parse_macro_input, DeriveInput, Error};

#[proc_macro_derive(FromMessage, attributes(irc))]
pub fn derive_from_message(input: TokenStream) -> TokenStream {
    let input = parse_macro_input!(input as DeriveInput);
    expand::derive_from_message(&input)
        .unwrap_or_else(Error::into_compile_error)
        .into()
}

#[proc_macro_derive(ToMessage, attributes(irc))]
pub fn derive_to_message(input: proc_macro::TokenStream) -> proc_macro::TokenStream {
    let input = syn::parse_macro_input!(input as syn::DeriveInput);
    expand::derive_to_message(&input)
        .unwrap_or_else(Error::into_compile_error)
        .into()
}