diff options
| author | mat <github@matdoes.dev> | 2021-12-12 13:48:37 -0600 |
|---|---|---|
| committer | mat <github@matdoes.dev> | 2021-12-12 13:48:37 -0600 |
| commit | ec03abfe693d27c4ce2762cdfbf749beecaa8adf (patch) | |
| tree | fcf2d2e085ec05851e29676bade8484cedd5dd3a /minecraft-protocol | |
| parent | 1286286e836bd9ec8d6df1d1aa13f6f3346d17da (diff) | |
| download | azalea-drasl-ec03abfe693d27c4ce2762cdfbf749beecaa8adf.tar.xz | |
delete packet-macros
Diffstat (limited to 'minecraft-protocol')
| -rw-r--r-- | minecraft-protocol/Cargo.toml | 1 | ||||
| -rw-r--r-- | minecraft-protocol/packet-macros/Cargo.toml | 13 | ||||
| -rw-r--r-- | minecraft-protocol/packet-macros/src/lib.rs | 145 |
3 files changed, 0 insertions, 159 deletions
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<T: tokio::io::AsyncRead + std::marker::Unpin + std::marker::Send>( -// id: u32, -// protocol: &ConnectionProtocol, -// flow: &PacketFlow, -// buf: &mut BufReader<T>, -// ) -> Result<Packet, String> { -// 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<u8>) { -// self.get_inner_packet().write(buf); -// } -// } - -struct RegisterPacket { - name: syn::Ident, - connection_protocol: syn::Ident, - flow: syn::Ident, -} - -struct RegisterPackets { - packets: Vec<RegisterPacket>, -} - -impl Parse for RegisterPackets { - fn parse(input: ParseStream) -> syn::Result<Self> { - let packets = vec![]; - loop { - let name: syn::Ident = input.parse()?; - - input.parse::<syn::Token![=>]>()?; - - let connection_protocol: syn::Ident = input.parse()?; - input.parse::<syn::Token![,]>()?; - let flow: syn::Ident = input.parse()?; - - input.parse::<syn::Token![;]>()?; - - 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() -} |
