aboutsummaryrefslogtreecommitdiff
path: root/azalea-protocol/src/packets/mod.rs
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/src/packets/mod.rs
parent4d75415130a008f83c3bd594ca4cefd01f3d53dd (diff)
parentdb2fcecdc38ea7a43b098c6282dd906b73981f97 (diff)
downloadazalea-drasl-bec2da64d81883e3ea909452e71e17b9d22b2adc.tar.xz
Merge branch 'main' into chunk-decoding
Diffstat (limited to 'azalea-protocol/src/packets/mod.rs')
-rwxr-xr-xazalea-protocol/src/packets/mod.rs21
1 files changed, 5 insertions, 16 deletions
diff --git a/azalea-protocol/src/packets/mod.rs b/azalea-protocol/src/packets/mod.rs
index 98741a75..67fa92e9 100755
--- a/azalea-protocol/src/packets/mod.rs
+++ b/azalea-protocol/src/packets/mod.rs
@@ -3,14 +3,14 @@ pub mod handshake;
pub mod login;
pub mod status;
+use std::io::Read;
+
use crate::{
connect::PacketFlow,
mc_buf::{McBufReadable, McBufWritable, Readable, Writable},
};
-use async_trait::async_trait;
use num_derive::FromPrimitive;
use num_traits::FromPrimitive;
-use tokio::io::AsyncRead;
pub const PROTOCOL_VERSION: u32 = 758;
@@ -31,7 +31,6 @@ pub enum Packet {
}
/// An enum of packets for a certain protocol
-#[async_trait]
pub trait ProtocolPacket
where
Self: Sized,
@@ -39,24 +38,14 @@ where
fn id(&self) -> u32;
/// Read a packet by its id, ConnectionProtocol, and flow
- async fn read<T: tokio::io::AsyncRead + std::marker::Unpin + std::marker::Send>(
- id: u32,
- flow: &PacketFlow,
- buf: &mut T,
- ) -> Result<Self, String>
- where
- Self: Sized;
+ fn read(id: u32, flow: &PacketFlow, buf: &mut impl Read) -> Result<Self, String>;
fn write(&self, buf: &mut Vec<u8>) -> Result<(), std::io::Error>;
}
-#[async_trait]
impl McBufReadable for ConnectionProtocol {
- async fn read_into<R>(buf: &mut R) -> Result<Self, String>
- where
- R: AsyncRead + std::marker::Unpin + std::marker::Send,
- {
- ConnectionProtocol::from_i32(buf.read_varint().await?)
+ fn read_into(buf: &mut impl Read) -> Result<Self, String> {
+ ConnectionProtocol::from_i32(buf.read_varint()?)
.ok_or_else(|| "Invalid intention".to_string())
}
}