1use proc_macro::TokenStream;
2
3use crate::expand_embedded_derive::expand_embedded_derive;
4use crate::expand_enum_derive::expand_enum_derive;
5use crate::expand_model_derive::expand_model_derive;
6use crate::expand_update_model_derive::expand_update_model_derive;
7
8mod common;
9mod expand_embedded_derive;
10mod expand_enum_derive;
11mod expand_model_derive;
12mod expand_update_model_derive;
13
14#[proc_macro_derive(Model, attributes(dojo))]
15pub fn model_derive_macro(input: TokenStream) -> TokenStream {
16 expand_model_derive(input.into()).unwrap().into()
17}
18
19#[proc_macro_derive(Type, attributes(dojo))]
20pub fn enum_derive_macro(input: TokenStream) -> TokenStream {
21 expand_enum_derive(input.into()).unwrap().into()
22}
23
24#[proc_macro_derive(EmbeddedModel)]
25pub fn embedded_derive_macro(input: TokenStream) -> TokenStream {
26 expand_embedded_derive(input.into()).unwrap().into()
27}
28
29#[proc_macro_derive(UpdateModel, attributes(dojo))]
30pub fn update_model_derive_macro(input: TokenStream) -> TokenStream {
31 expand_update_model_derive(input.into()).unwrap().into()
32}