WIP: procmacro for automatic packet generation

This commit is contained in:
vagola
2019-12-30 03:16:38 +03:00
parent 5c4721a2bc
commit d78175d685
19 changed files with 70 additions and 34 deletions

View File

@@ -0,0 +1,28 @@
extern crate proc_macro;
use proc_macro::TokenStream;
use quote::quote;
use syn::{parse_macro_input, DeriveInput};
#[proc_macro_derive(MinecraftPacket)]
pub fn derive_packet(input: TokenStream) -> TokenStream {
let input = parse_macro_input!(input as DeriveInput);
let name = input.ident;
let output = quote! {
impl minecraft_protocol::Packet for #name {
type Output = Self;
fn encode<W: Write>(&self, writer: &mut W) -> Result<(), EncodeError> {
}
fn decode<R: Read>(reader: &mut R) -> Result<Self::Output, DecodeError> {
}
}
};
TokenStream::from(output)
}