kittycad_modeling_cmds_macros/
lib.rs1use kittycad_modeling_cmds_macros_impl::modeling_cmd_enum;
4use kittycad_modeling_cmds_macros_impl::modeling_cmd_output;
5use kittycad_modeling_cmds_macros_impl::modeling_cmd_variant;
6use kittycad_modeling_cmds_macros_impl::ok_modeling_cmd_response_enum;
7
8use proc_macro::TokenStream;
9use syn::{DeriveInput, ItemMod};
10
11#[proc_macro_derive(ModelingCmdVariant)]
14pub fn derive_modeling_cmd_variant_nonempty(input: TokenStream) -> TokenStream {
15 let input: DeriveInput = syn::parse2(input.into()).unwrap();
17 TokenStream::from(modeling_cmd_variant::derive_nonempty(input))
22}
23
24#[proc_macro]
26pub fn define_modeling_cmd_enum(item: TokenStream) -> TokenStream {
27 let input: ItemMod = syn::parse2(item.into()).unwrap();
28 TokenStream::from(modeling_cmd_enum::generate(input))
29}
30
31#[proc_macro_derive(ModelingCmdOutput)]
33pub fn derive_modeling_cmd_output(input: TokenStream) -> TokenStream {
34 let input: DeriveInput = syn::parse2(input.into()).unwrap();
35 TokenStream::from(modeling_cmd_output::derive(input))
36}
37
38#[proc_macro]
40pub fn define_ok_modeling_cmd_response_enum(item: TokenStream) -> TokenStream {
41 let input: ItemMod = syn::parse2(item.into()).unwrap();
42 TokenStream::from(ok_modeling_cmd_response_enum::generate(input))
43}