apidoc_proc/
lib.rs

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}