eager2 1.1.4

Proc-macros for eager macro expansion
Documentation
use eager2_core::pm::{ToTokens, TokenStream};

use crate::init::init;

pub fn eager_macro_rules(stream: TokenStream) -> TokenStream {
    init();
    let output = match eager2_core::rules::eager_macro_rules(stream) {
        Ok(output) => output,
        Err(err) => return err.into_token_stream(),
    };

    #[cfg(feature = "trace_macros")]
    println!("eager_macro_rules output: {}", output);

    output
}

pub fn eager_macro(attr: TokenStream, stream: TokenStream) -> TokenStream {
    init();
    let output = match eager2_core::rules::eager_macro(attr, stream) {
        Ok(output) => output,
        Err(err) => return err.into_token_stream(),
    };

    #[cfg(feature = "trace_macros")]
    println!("eager_macro output: {}", output);

    output
}