rust-dnsbox/lib/dnsbox-derive/src/lib.rs

32 lines
632 B
Rust

extern crate proc_macro;
extern crate syn;
#[macro_use]
extern crate quote;
use proc_macro::TokenStream;
mod dns_packet_data;
mod rrdata;
#[proc_macro_derive(DnsPacketData)]
pub fn derive_dns_packet_data(input: TokenStream) -> TokenStream {
let s = input.to_string();
let ast = syn::parse_derive_input(&s).unwrap();
let gen = dns_packet_data::impl_hello_world(&ast);
gen.parse().unwrap()
}
#[proc_macro_derive(RRData)]
pub fn derive_rr_data(input: TokenStream) -> TokenStream {
let s = input.to_string();
let ast = syn::parse_derive_input(&s).unwrap();
let gen = rrdata::impl_rr_data(&ast);
gen.parse().unwrap()
}