From ec03abfe693d27c4ce2762cdfbf749beecaa8adf Mon Sep 17 00:00:00 2001 From: mat Date: Sun, 12 Dec 2021 13:48:37 -0600 Subject: [PATCH] delete packet-macros --- minecraft-protocol/Cargo.toml | 1 - minecraft-protocol/packet-macros/Cargo.toml | 13 -- minecraft-protocol/packet-macros/src/lib.rs | 145 -------------------- 3 files changed, 159 deletions(-) delete mode 100644 minecraft-protocol/packet-macros/Cargo.toml delete mode 100644 minecraft-protocol/packet-macros/src/lib.rs diff --git a/minecraft-protocol/Cargo.toml b/minecraft-protocol/Cargo.toml index 2aaffa88..3cbf663b 100644 --- a/minecraft-protocol/Cargo.toml +++ b/minecraft-protocol/Cargo.toml @@ -11,7 +11,6 @@ async-trait = "0.1.51" byteorder = "^1.4.3" bytes = "^1.1.0" minecraft-chat = {path = "../minecraft-chat"} -packet-macros = {path = "./packet-macros"} serde = {version = "1.0.130", features = ["serde_derive"]} serde_json = "^1.0.72" thiserror = "^1.0.30" diff --git a/minecraft-protocol/packet-macros/Cargo.toml b/minecraft-protocol/packet-macros/Cargo.toml deleted file mode 100644 index 0e7b31bf..00000000 --- a/minecraft-protocol/packet-macros/Cargo.toml +++ /dev/null @@ -1,13 +0,0 @@ -[package] -edition = "2021" -name = "packet-macros" -version = "0.1.0" - -[lib] -proc-macro = true -# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html - -[dependencies] -casey = "^0.3.3" -quote = "^1.0.10" -syn = "^1.0.82" diff --git a/minecraft-protocol/packet-macros/src/lib.rs b/minecraft-protocol/packet-macros/src/lib.rs deleted file mode 100644 index 78a8a402..00000000 --- a/minecraft-protocol/packet-macros/src/lib.rs +++ /dev/null @@ -1,145 +0,0 @@ -use casey::{pascal, snake}; -extern crate proc_macro; - -use proc_macro::TokenStream; -use quote::quote; -use syn::{ - self, - parse::{Parse, ParseStream}, - parse_macro_input, DeriveInput, Signature, -}; - -// #[derive(Clone, Debug)] -// pub enum Packet { -// // game - -// // handshake -// ClientIntentionPacket(handshake::client_intention_packet::ClientIntentionPacket), - -// // login - -// // status -// ServerboundStatusRequestPacket( -// status::serverbound_status_request_packet::ServerboundStatusRequestPacket, -// ), -// ClientboundStatusResponsePacket( -// status::clientbound_status_response_packet::ClientboundStatusResponsePacket, -// ), -// } - -// // TODO: do all this with macros so it's less repetitive -// impl Packet { -// fn get_inner_packet(&self) -> &dyn PacketTrait { -// match self { -// Packet::ClientIntentionPacket(packet) => packet, -// Packet::ServerboundStatusRequestPacket(packet) => packet, -// Packet::ClientboundStatusResponsePacket(packet) => packet, -// } -// } - -// pub fn id(&self) -> u32 { -// match self { -// Packet::ClientIntentionPacket(_packet) => 0x00, -// Packet::ServerboundStatusRequestPacket(_packet) => 0x00, -// Packet::ClientboundStatusResponsePacket(_packet) => 0x00, -// } -// } - -// /// Read a packet by its id, ConnectionProtocol, and flow -// pub async fn read( -// id: u32, -// protocol: &ConnectionProtocol, -// flow: &PacketFlow, -// buf: &mut BufReader, -// ) -> Result { -// match protocol { -// ConnectionProtocol::Handshake => match id { -// 0x00 => Ok( -// handshake::client_intention_packet::ClientIntentionPacket::read(buf).await?, -// ), -// _ => Err(format!("Unknown packet id: {}", id)), -// }, -// ConnectionProtocol::Game => Err("Game protocol not implemented yet".to_string()), -// ConnectionProtocol::Status => match flow { -// PacketFlow::ServerToClient => match id { -// 0x00 => Ok( -// status::clientbound_status_response_packet::ClientboundStatusResponsePacket -// ::read(buf) -// .await?, -// ), -// _ => Err(format!("Unknown packet id: {}", id)), -// }, -// PacketFlow::ClientToServer => match id { -// 0x00 => Ok( -// status::serverbound_status_request_packet::ServerboundStatusRequestPacket -// ::read(buf) -// .await?, -// ), -// _ => Err(format!("Unknown packet id: {}", id)), -// }, -// }, -// ConnectionProtocol::Login => Err("Login protocol not implemented yet".to_string()), -// } -// } - -// pub fn write(&self, buf: &mut Vec) { -// self.get_inner_packet().write(buf); -// } -// } - -struct RegisterPacket { - name: syn::Ident, - connection_protocol: syn::Ident, - flow: syn::Ident, -} - -struct RegisterPackets { - packets: Vec, -} - -impl Parse for RegisterPackets { - fn parse(input: ParseStream) -> syn::Result { - let packets = vec![]; - loop { - let name: syn::Ident = input.parse()?; - - input.parse::]>()?; - - let connection_protocol: syn::Ident = input.parse()?; - input.parse::()?; - let flow: syn::Ident = input.parse()?; - - input.parse::()?; - - packets.push(RegisterPacket { - name, - connection_protocol, - flow, - }); - - if input.is_empty() { - break; - } - } - - Ok(RegisterPackets { packets }) - } -} - -#[proc_macro] -pub fn register_packets(input: TokenStream) -> TokenStream { - let RegisterPackets { packets } = syn::parse_macro_input!(input as RegisterPackets); - - // ClientIntentionPacket(handshake::client_intention_packet::ClientIntentionPacket), - let gen = quote! { - // #[derive(Clone, Debug)] - // pub enum Packet { - // // ClientIntentionPacket(handshake::client_intention_packet::ClientIntentionPacket), - // // ClientboundStatusResponsePacket( - // // status::clientbound_status_response_packet::ClientboundStatusResponsePacket, - // // ), - - // } - }; - gen.into() -}