1mod build;
2pub(crate) mod core;
3mod default;
4mod deref;
5mod display;
6mod forward;
7mod get;
8pub(crate) mod params;
9mod set;
10mod traits;
11mod r#union;
12
13use proc_macro::TokenStream;
14
15pub(crate) use traits::*;
16
17#[proc_macro_derive(Deref, attributes(moxy))]
18pub fn derive_deref(tokens: TokenStream) -> TokenStream {
19 match deref::render(tokens) {
20 Err(err) => err.to_compile_error().into(),
21 Ok(v) => v.into(),
22 }
23}
24
25#[proc_macro_derive(Display, attributes(moxy))]
26pub fn derive_display(tokens: TokenStream) -> TokenStream {
27 match display::render(tokens) {
28 Err(err) => err.to_compile_error().into(),
29 Ok(v) => v.into(),
30 }
31}
32
33#[proc_macro_derive(Build, attributes(moxy))]
34pub fn derive_build(tokens: TokenStream) -> TokenStream {
35 match build::render(tokens) {
36 Err(err) => err.to_compile_error().into(),
37 Ok(v) => v.into(),
38 }
39}
40
41#[proc_macro_derive(Default, attributes(moxy))]
42pub fn derive_default(tokens: TokenStream) -> TokenStream {
43 match default::render(tokens) {
44 Err(err) => err.to_compile_error().into(),
45 Ok(v) => v.into(),
46 }
47}
48
49#[proc_macro_derive(Get, attributes(moxy))]
50pub fn derive_get(tokens: TokenStream) -> TokenStream {
51 match get::render(tokens) {
52 Err(err) => err.to_compile_error().into(),
53 Ok(v) => v.into(),
54 }
55}
56
57#[proc_macro_derive(Set, attributes(moxy))]
58pub fn derive_set(tokens: TokenStream) -> TokenStream {
59 match set::render(tokens) {
60 Err(err) => err.to_compile_error().into(),
61 Ok(v) => v.into(),
62 }
63}
64
65#[proc_macro_derive(Forward, attributes(moxy))]
66pub fn derive_forward(tokens: TokenStream) -> TokenStream {
67 match forward::render(tokens) {
68 Err(err) => err.to_compile_error().into(),
69 Ok(v) => v.into(),
70 }
71}
72
73#[proc_macro_derive(Union, attributes(moxy))]
74pub fn derive_union(tokens: TokenStream) -> TokenStream {
75 match r#union::render(tokens) {
76 Err(err) => err.to_compile_error().into(),
77 Ok(v) => v.into(),
78 }
79}
80
81#[proc_macro]
82pub fn unionize(tokens: TokenStream) -> TokenStream {
83 match r#union::unionize::render(tokens) {
84 Err(err) => err.to_compile_error().into(),
85 Ok(v) => v.into(),
86 }
87}