Files
orchid/orchid-api-derive/src/lib.rs

28 lines
700 B
Rust

mod common;
mod decode;
mod encode;
mod hierarchy;
#[macro_use]
extern crate quote;
#[macro_use]
extern crate syn;
#[allow(unused)]
use orchid_api_traits::Coding;
use proc_macro::TokenStream;
#[proc_macro_derive(Decode)]
pub fn decode(input: TokenStream) -> TokenStream { decode::derive(input) }
#[proc_macro_derive(Encode)]
pub fn encode(input: TokenStream) -> TokenStream { encode::derive(input) }
#[proc_macro_derive(Hierarchy, attributes(extends, extendable))]
pub fn hierarchy(input: TokenStream) -> TokenStream { hierarchy::derive(input) }
#[proc_macro_derive(Coding)]
pub fn coding(input: TokenStream) -> TokenStream {
decode(input.clone()).into_iter().chain(encode(input)).collect()
}