1
2
Fork 0
mirror of https://github.com/mat-1/azalea.git synced 2025-08-02 06:16:04 +00:00

implement for Vec<u8>

This commit is contained in:
mat 2022-01-02 17:07:01 -06:00
parent bb57273f48
commit bb566aa541
4 changed files with 18 additions and 8 deletions

View file

@ -29,9 +29,6 @@ fn as_packet_derive(
quote! { buf.write_utf(&self.#field_name)?; }
} else if path.is_ident("ResourceLocation") {
quote! { buf.write_resource_location(&self.#field_name)?; }
// i don't know how to do this in a way that isn't terrible
} else if path.to_token_stream().to_string() == "Vec < u8 >" {
quote! { buf.write_bytes(&self.#field_name)?; }
} else if path.is_ident("u32") {
if f.attrs.iter().any(|attr| attr.path.is_ident("varint")) {
quote! { buf.write_varint(self.#field_name as i32)?; }
@ -49,7 +46,7 @@ fn as_packet_derive(
}
} else {
quote! {
crate::mc_buf::McBufVarintWritable::write_into(&self.#field_name, buf)?;
crate::mc_buf::McBufWritable::write_into(&self.#field_name, buf)?;
}
}
@ -77,8 +74,6 @@ fn as_packet_derive(
quote! { let #field_name = buf.read_utf().await?; }
} else if path.is_ident("ResourceLocation") {
quote! { let #field_name = buf.read_resource_location().await?; }
} else if path.to_token_stream().to_string() == "Vec < u8 >" {
quote! { let #field_name = buf.read_bytes().await?; }
} else if path.is_ident("u32") {
if f.attrs.iter().any(|a| a.path.is_ident("varint")) {
quote! { let #field_name = buf.read_varint().await? as u32; }

View file

@ -228,3 +228,13 @@ impl McBufVarintReadable for i32 {
buf.read_varint().await
}
}
#[async_trait]
impl McBufReadable for Vec<u8> {
async fn read_into<R>(buf: &mut R) -> Result<Self, String>
where
R: AsyncRead + std::marker::Unpin + std::marker::Send,
{
buf.read_bytes().await
}
}

View file

@ -178,3 +178,9 @@ impl McBufVarintWritable for i32 {
buf.write_varint(*self)
}
}
impl McBufWritable for Vec<u8> {
fn write_into(&self, buf: &mut Vec<u8>) -> Result<(), std::io::Error> {
buf.write_bytes(self)
}
}

View file

@ -1,6 +1,5 @@
// i don't know the actual name of this packet, i couldn't find it in the source code!
// i don't know the actual name of this packet, i couldn't find it in the source code
use crate::mc_buf::{Readable, Writable};
use packet_macros::GamePacket;
#[derive(Clone, Debug, GamePacket)]