1mod common;
2mod runner;
3mod runner_async;
4
5use proc_macro::TokenStream;
6
7#[proc_macro_derive(Runner, attributes(command, clap, runner))]
8pub fn derive_runner(input: TokenStream) -> TokenStream {
9 match runner::derive_runner(input.into()) {
10 Ok(token) => token.into(),
11 Err(err) => err.to_compile_error().into(),
12 }
13}
14
15#[proc_macro_derive(RunnerAsync, attributes(command, clap, runner))]
16pub fn derive_runner_async(input: TokenStream) -> TokenStream {
17 match runner_async::derive_runner_async(input.into()) {
18 Ok(token) => token.into(),
19 Err(err) => err.to_compile_error().into(),
20 }
21}