moxy-derive 0.0.4

derive macros for moxy crate
Documentation
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(),
    }
}