1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
mod example;
mod generated_doc;

use proc_macro::TokenStream;

/// Includes the type's JSON example generated by doc-file-generator as a string.
/// Convenience alias for #[cfg_attr(doc, doc = generated_docs!(MyType))]
#[proc_macro_attribute]
pub fn generated_doc(attr: TokenStream, item: TokenStream) -> TokenStream {
    generated_doc::generated_doc_impl(attr, item)
}

#[proc_macro_attribute]
pub fn generated_doc_inner(attr: TokenStream, item: TokenStream) -> TokenStream {
    generated_doc::generated_doc_inner_impl(attr, item)
}

/// Accepts a struct or enum literal and generates an Example impl for the type.
#[proc_macro]
#[track_caller]
pub fn example(input: TokenStream) -> TokenStream {
    example::example_impl(input)
}