forked from Orchid/orchid
28 lines
700 B
Rust
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()
|
|
}
|