#![allow(unknown_lints, special_module_name)]
#![allow(
    clippy::cast_lossless,
    clippy::let_underscore_untyped,
    clippy::uninlined_format_args
)]

quote_benchmark::run_quote_benchmark!(_);

mod benchmark {
    macro_rules! benchmark {
        (|$ident:ident| $quote:expr) => {
            use proc_macro2::{Ident, Span};

            pub fn quote() -> proc_macro2::TokenStream {
                let $ident = Ident::new("Response", Span::call_site());
                $quote
            }
        };
    }

    pub(crate) use benchmark;
}

use benchmark::benchmark;

mod lib;
mod timer;

fn main() {
    timer::time("non-macro", lib::quote);
}