1mod entrypoint;
10
11use crate::entrypoint::{generate_entrypoint, generate_entrypoint_flex};
12use proc_macro2::TokenStream;
13
14#[proc_macro_attribute]
15pub fn entrypoint(
26 metadata: proc_macro::TokenStream,
27 input: proc_macro::TokenStream,
28) -> proc_macro::TokenStream {
29 let input = TokenStream::from(input);
30 let metadata = TokenStream::from(metadata);
31 let output = match generate_entrypoint(metadata, input) {
32 Ok(stream) => stream,
33 Err(error) => error.to_compile_error(),
34 };
35 proc_macro::TokenStream::from(output)
36}
37
38#[proc_macro_attribute]
39pub fn entrypoint_flex(
42 metadata: proc_macro::TokenStream,
43 input: proc_macro::TokenStream,
44) -> proc_macro::TokenStream {
45 let input = TokenStream::from(input);
46 let metadata = TokenStream::from(metadata);
47 let output = match generate_entrypoint_flex(metadata, input) {
48 Ok(stream) => stream,
49 Err(error) => error.to_compile_error(),
50 };
51 proc_macro::TokenStream::from(output)
52}