nt_packet_derive/
lib.rs

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}