1#[cfg(feature = "generate")]
2#[proc_macro_derive(ApiModel, attributes(api_prop, api_use, name))]
3pub fn derive_api_model(input: proc_macro::TokenStream) -> proc_macro::TokenStream {
4 let input = syn::parse_macro_input!(input as syn::DeriveInput);
5 apidoc_expand::api_model::expand(input)
6 .unwrap_or_else(|err| err.into_compile_error())
7 .into()
8}
9
10#[cfg(not(feature = "generate"))]
11#[proc_macro_derive(ApiModel, attributes(api_prop, api_use, name))]
12pub fn derive_api_model(_input: proc_macro::TokenStream) -> proc_macro::TokenStream {
13 proc_macro::TokenStream::default()
14}
15
16#[cfg(feature = "generate")]
17#[proc_macro_derive(ApiError, attributes(api_error, error))]
18pub fn derive_api_error(input: proc_macro::TokenStream) -> proc_macro::TokenStream {
19 let input = syn::parse_macro_input!(input as syn::DeriveInput);
20 apidoc_expand::api_error::expand(&input)
21 .unwrap_or_else(|err| err.into_compile_error())
22 .into()
23}
24
25#[cfg(not(feature = "generate"))]
26#[proc_macro_derive(ApiError, attributes(api_error, error))]
27pub fn derive_api_error(_input: proc_macro::TokenStream) -> proc_macro::TokenStream {
28 proc_macro::TokenStream::default()
29}