Skip to main content

clap_exec_derive/
lib.rs

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}