aboutsummaryrefslogtreecommitdiff
path: root/azalea-protocol/packet-macros/src
diff options
context:
space:
mode:
authormat <github@matdoes.dev>2022-05-01 23:06:56 -0500
committermat <github@matdoes.dev>2022-05-01 23:06:56 -0500
commitbec2da64d81883e3ea909452e71e17b9d22b2adc (patch)
treed4f94abc09534768f2531a4c23f54dcc2dab2814 /azalea-protocol/packet-macros/src
parent4d75415130a008f83c3bd594ca4cefd01f3d53dd (diff)
parentdb2fcecdc38ea7a43b098c6282dd906b73981f97 (diff)
downloadazalea-drasl-bec2da64d81883e3ea909452e71e17b9d22b2adc.tar.xz
Merge branch 'main' into chunk-decoding
Diffstat (limited to 'azalea-protocol/packet-macros/src')
-rwxr-xr-xazalea-protocol/packet-macros/src/lib.rs32
1 files changed, 12 insertions, 20 deletions
diff --git a/azalea-protocol/packet-macros/src/lib.rs b/azalea-protocol/packet-macros/src/lib.rs
index 6c1998b9..0d912257 100755
--- a/azalea-protocol/packet-macros/src/lib.rs
+++ b/azalea-protocol/packet-macros/src/lib.rs
@@ -25,11 +25,11 @@ fn create_impl_mcbufreadable(ident: &Ident, data: &Data) -> proc_macro2::TokenSt
syn::Type::Path(_) => {
if f.attrs.iter().any(|a| a.path.is_ident("varint")) {
quote! {
- let #field_name = crate::mc_buf::McBufVarintReadable::varint_read_into(buf).await?;
+ let #field_name = crate::mc_buf::McBufVarintReadable::varint_read_into(buf)?;
}
} else {
quote! {
- let #field_name = crate::mc_buf::McBufReadable::read_into(buf).await?;
+ let #field_name = crate::mc_buf::McBufReadable::read_into(buf)?;
}
}
}
@@ -44,12 +44,8 @@ fn create_impl_mcbufreadable(ident: &Ident, data: &Data) -> proc_macro2::TokenSt
let read_field_names = named.iter().map(|f| &f.ident).collect::<Vec<_>>();
quote! {
- #[async_trait::async_trait]
impl crate::mc_buf::McBufReadable for #ident {
- async fn read_into<R>(buf: &mut R) -> Result<Self, String>
- where
- R: tokio::io::AsyncRead + std::marker::Unpin + std::marker::Send,
- {
+ fn read_into(buf: &mut impl std::io::Read) -> Result<Self, String> {
#(#read_fields)*
Ok(#ident {
#(#read_field_names: #read_field_names),*
@@ -73,13 +69,10 @@ fn create_impl_mcbufreadable(ident: &Ident, data: &Data) -> proc_macro2::TokenSt
}
quote! {
- #[async_trait::async_trait]
impl crate::mc_buf::McBufReadable for #ident {
- async fn read_into<R>(buf: &mut R) -> Result<Self, String>
- where
- R: tokio::io::AsyncRead + std::marker::Unpin + std::marker::Send,
+ fn read_into(buf: &mut impl std::io::Read) -> Result<Self, String>
{
- let id = buf.read_varint().await?;
+ let id = buf.read_varint()?;
match id {
#match_contents
_ => Err(format!("Unknown enum variant {}", id)),
@@ -189,11 +182,11 @@ fn as_packet_derive(input: TokenStream, state: proc_macro2::TokenStream) -> Toke
crate::mc_buf::McBufWritable::write_into(self, buf)
}
- pub async fn read<T: tokio::io::AsyncRead + std::marker::Unpin + std::marker::Send>(
- buf: &mut T,
+ pub fn read(
+ buf: &mut impl std::io::Read,
) -> Result<#state, String> {
use crate::mc_buf::McBufReadable;
- Ok(Self::read_into(buf).await?.get())
+ Ok(Self::read_into(buf)?.get())
}
}
@@ -339,7 +332,7 @@ pub fn declare_state_packets(input: TokenStream) -> TokenStream {
#state_name::#name(packet) => packet.write(buf),
});
serverbound_read_match_contents.extend(quote! {
- #id => #module::#name::read(buf).await?,
+ #id => #module::#name::read(buf)?,
});
}
for PacketIdPair { id, module, name } in input.clientbound.packets {
@@ -353,7 +346,7 @@ pub fn declare_state_packets(input: TokenStream) -> TokenStream {
#state_name::#name(packet) => packet.write(buf),
});
clientbound_read_match_contents.extend(quote! {
- #id => #module::#name::read(buf).await?,
+ #id => #module::#name::read(buf)?,
});
}
@@ -366,7 +359,6 @@ pub fn declare_state_packets(input: TokenStream) -> TokenStream {
#enum_contents
}
- #[async_trait::async_trait]
impl crate::packets::ProtocolPacket for #state_name {
fn id(&self) -> u32 {
match self {
@@ -381,10 +373,10 @@ pub fn declare_state_packets(input: TokenStream) -> TokenStream {
}
/// Read a packet by its id, ConnectionProtocol, and flow
- async fn read<T: tokio::io::AsyncRead + std::marker::Unpin + std::marker::Send>(
+ fn read(
id: u32,
flow: &crate::connect::PacketFlow,
- buf: &mut T,
+ buf: &mut impl std::io::Read,
) -> Result<#state_name, String>
where
Self: Sized,