• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 //! Dummy implementations that we emit along with an error.
2 
3 use proc_macro2::Ident;
4 use quote::quote;
5 
6 #[must_use]
parser(name: &Ident) -> proc_macro2::TokenStream7 pub fn parser(name: &Ident) -> proc_macro2::TokenStream {
8     let into_app = into_app(name);
9     quote!(
10         impl clap::Parser for #name {}
11         #into_app
12     )
13 }
14 
15 #[must_use]
into_app(name: &Ident) -> proc_macro2::TokenStream16 pub fn into_app(name: &Ident) -> proc_macro2::TokenStream {
17     quote! {
18         impl clap::CommandFactory for #name {
19             fn command<'b>() -> clap::Command {
20                 unimplemented!()
21             }
22             fn command_for_update<'b>() -> clap::Command {
23                 unimplemented!()
24             }
25         }
26     }
27 }
28 
29 #[must_use]
from_arg_matches(name: &Ident) -> proc_macro2::TokenStream30 pub fn from_arg_matches(name: &Ident) -> proc_macro2::TokenStream {
31     quote! {
32         impl clap::FromArgMatches for #name {
33             fn from_arg_matches(_m: &clap::ArgMatches) -> ::std::result::Result<Self, clap::Error> {
34                 unimplemented!()
35             }
36             fn update_from_arg_matches(&mut self, matches: &clap::ArgMatches) -> ::std::result::Result<(), clap::Error>{
37                 unimplemented!()
38             }
39         }
40     }
41 }
42 
43 #[must_use]
subcommand(name: &Ident) -> proc_macro2::TokenStream44 pub fn subcommand(name: &Ident) -> proc_macro2::TokenStream {
45     let from_arg_matches = from_arg_matches(name);
46     quote! {
47         impl clap::Subcommand for #name {
48             fn augment_subcommands(_cmd: clap::Command) -> clap::Command {
49                 unimplemented!()
50             }
51             fn augment_subcommands_for_update(_cmd: clap::Command) -> clap::Command {
52                 unimplemented!()
53             }
54             fn has_subcommand(name: &str) -> bool {
55                 unimplemented!()
56             }
57         }
58         #from_arg_matches
59     }
60 }
61 
62 #[must_use]
args(name: &Ident) -> proc_macro2::TokenStream63 pub fn args(name: &Ident) -> proc_macro2::TokenStream {
64     let from_arg_matches = from_arg_matches(name);
65     quote! {
66         impl clap::Args for #name {
67             fn augment_args(_cmd: clap::Command) -> clap::Command {
68                 unimplemented!()
69             }
70             fn augment_args_for_update(_cmd: clap::Command) -> clap::Command {
71                 unimplemented!()
72             }
73         }
74         #from_arg_matches
75     }
76 }
77 
78 #[must_use]
value_enum(name: &Ident) -> proc_macro2::TokenStream79 pub fn value_enum(name: &Ident) -> proc_macro2::TokenStream {
80     quote! {
81         impl clap::ValueEnum for #name {
82             fn value_variants<'a>() -> &'a [Self]{
83                 unimplemented!()
84             }
85             fn from_str(_input: &str, _ignore_case: bool) -> ::std::result::Result<Self, String> {
86                 unimplemented!()
87             }
88             fn to_possible_value<'a>(&self) -> ::std::option::Option<clap::builder::PossibleValue>{
89                 unimplemented!()
90             }
91         }
92     }
93 }
94