diff options
Diffstat (limited to 'arg_picker_macros/src/lib.rs')
| -rw-r--r-- | arg_picker_macros/src/lib.rs | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/arg_picker_macros/src/lib.rs b/arg_picker_macros/src/lib.rs new file mode 100644 index 0000000..18cce84 --- /dev/null +++ b/arg_picker_macros/src/lib.rs @@ -0,0 +1,32 @@ +#![doc = include_str!("../README.md")] + +use proc_macro::TokenStream; + +mod arg; +mod internal_repeat; + +/// Core proc-macro: repeats a template body `count` times. +/// +/// Internal call signature: `internal_repeat!(count => { template })` +#[proc_macro] +pub fn internal_repeat(input: TokenStream) -> TokenStream { + internal_repeat::internal_repeat(input) +} + +/// Quick builder for `PickerArg`. +/// +/// # Syntax +/// +/// ```ignore +/// use arg_picker_macros::flag; +/// +/// let basic = arg![name: String]; +/// let with_short_name = arg![name: String, 'n']; +/// let with_short_alias = arg![name: String, 'n', "alias"]; +/// let positional = arg![String]; +/// let positional_with_name = arg![String, 'n', "alias"]; +/// ``` +#[proc_macro] +pub fn arg(input: TokenStream) -> TokenStream { + arg::arg(input) +} |
