1extern crate proc_macro;
2extern crate syn;
3#[macro_use]
4extern crate quote;
5extern crate proc_macro2;
6
7mod client;
8mod server;
9mod util;
10
11use proc_macro::TokenStream;
12
13#[proc_macro_derive(ClientMessage, attributes(packet_id))]
14pub fn nt_client_packet_derive(input: TokenStream) -> TokenStream {
15 let ast = syn::parse(input).unwrap();
16
17 let gen = client::gen_client_packet_derive(ast);
18
19 gen.into()
20}
21
22#[proc_macro_derive(ServerMessage, attributes(packet_id))]
23pub fn nt_server_packet_derive(input: TokenStream) -> TokenStream {
24 let ast = syn::parse(input) .unwrap();
25
26 let gen = server::gen_server_packet_derive(ast);
27
28 gen.into()
29}