mod build;
pub(crate) mod core;
mod default;
mod deref;
mod display;
mod forward;
mod get;
pub(crate) mod params;
mod set;
mod traits;
mod r#union;
use proc_macro::TokenStream;
pub(crate) use traits::*;
#[proc_macro_derive(Deref, attributes(moxy))]
pub fn derive_deref(tokens: TokenStream) -> TokenStream {
match deref::render(tokens) {
Err(err) => err.to_compile_error().into(),
Ok(v) => v.into(),
}
}
#[proc_macro_derive(Display, attributes(moxy))]
pub fn derive_display(tokens: TokenStream) -> TokenStream {
match display::render(tokens) {
Err(err) => err.to_compile_error().into(),
Ok(v) => v.into(),
}
}
#[proc_macro_derive(Build, attributes(moxy))]
pub fn derive_build(tokens: TokenStream) -> TokenStream {
match build::render(tokens) {
Err(err) => err.to_compile_error().into(),
Ok(v) => v.into(),
}
}
#[proc_macro_derive(Default, attributes(moxy))]
pub fn derive_default(tokens: TokenStream) -> TokenStream {
match default::render(tokens) {
Err(err) => err.to_compile_error().into(),
Ok(v) => v.into(),
}
}
#[proc_macro_derive(Get, attributes(moxy))]
pub fn derive_get(tokens: TokenStream) -> TokenStream {
match get::render(tokens) {
Err(err) => err.to_compile_error().into(),
Ok(v) => v.into(),
}
}
#[proc_macro_derive(Set, attributes(moxy))]
pub fn derive_set(tokens: TokenStream) -> TokenStream {
match set::render(tokens) {
Err(err) => err.to_compile_error().into(),
Ok(v) => v.into(),
}
}
#[proc_macro_derive(Forward, attributes(moxy))]
pub fn derive_forward(tokens: TokenStream) -> TokenStream {
match forward::render(tokens) {
Err(err) => err.to_compile_error().into(),
Ok(v) => v.into(),
}
}
#[proc_macro_derive(Union, attributes(moxy))]
pub fn derive_union(tokens: TokenStream) -> TokenStream {
match r#union::render(tokens) {
Err(err) => err.to_compile_error().into(),
Ok(v) => v.into(),
}
}
#[proc_macro]
pub fn unionize(tokens: TokenStream) -> TokenStream {
match r#union::unionize::render(tokens) {
Err(err) => err.to_compile_error().into(),
Ok(v) => v.into(),
}
}