Skip to main content

comfy_builder_macros/
lib.rs

1use proc_macro::TokenStream;
2
3mod helpers;
4mod macros;
5
6#[proc_macro_attribute]
7pub fn node(arguments: TokenStream, input: TokenStream) -> TokenStream {
8    macros::node::node(arguments, input)
9}
10
11#[proc_macro_derive(NodeOutput, attributes(label, display_name, tooltip))]
12pub fn node_output_derive(input: TokenStream) -> TokenStream {
13    macros::output::node_output_derive(input)
14}
15
16#[proc_macro_derive(
17    NodeInput,
18    attributes(
19        attribute,
20        default,
21        display_name,
22        display_mode,
23        tooltip,
24        placeholder,
25        min,
26        max,
27        label_on,
28        label_off,
29        multiline,
30        control_after_generate
31    )
32)]
33pub fn node_input_derive(input: TokenStream) -> TokenStream {
34    macros::input::node_input_derive(input)
35}
36
37#[proc_macro_derive(Enum, attributes(display_name))]
38pub fn enum_derive(input: TokenStream) -> TokenStream {
39    macros::r#enum::enum_derive(input)
40}
41
42#[proc_macro]
43pub fn boostrap(input: TokenStream) -> TokenStream {
44    macros::boostrap::boostrap(input)
45}