From e5fcfa119309877ab515b921f8ada5f1b1ec4c30 Mon Sep 17 00:00:00 2001 From: mat Date: Tue, 26 Apr 2022 15:33:41 +0000 Subject: default implementation for read and write Vec --- azalea-protocol/src/mc_buf/write.rs | 20 ++++++-------------- 1 file changed, 6 insertions(+), 14 deletions(-) (limited to 'azalea-protocol/src/mc_buf/write.rs') diff --git a/azalea-protocol/src/mc_buf/write.rs b/azalea-protocol/src/mc_buf/write.rs index f1362402..e8845f25 100755 --- a/azalea-protocol/src/mc_buf/write.rs +++ b/azalea-protocol/src/mc_buf/write.rs @@ -1,5 +1,4 @@ -use super::MAX_STRING_LENGTH; -use crate::mc_buf::ByteArray; +use super::{UnsizedByteArray, MAX_STRING_LENGTH}; use async_trait::async_trait; use azalea_chat::component::Component; use azalea_core::{ @@ -187,15 +186,17 @@ impl McBufVarintWritable for i32 { } } -impl McBufWritable for Vec { +impl McBufWritable for UnsizedByteArray { fn write_into(&self, buf: &mut Vec) -> Result<(), std::io::Error> { buf.write_bytes(self) } } -impl McBufWritable for ByteArray { +// TODO: use specialization when that gets stabilized into rust +// to optimize for Vec byte arrays +impl McBufWritable for Vec { fn write_into(&self, buf: &mut Vec) -> Result<(), std::io::Error> { - buf.write_byte_array(&self) + buf.write_list(self, |buf, i| T::write_into(i, buf)) } } @@ -304,15 +305,6 @@ impl McBufWritable for Option { } } -// Vec -impl McBufWritable for Vec { - fn write_into(&self, buf: &mut Vec) -> Result<(), std::io::Error> { - buf.write_list(self, |buf, resource_location| { - buf.write_resource_location(resource_location) - }) - } -} - // azalea_nbt::Tag impl McBufWritable for azalea_nbt::Tag { fn write_into(&self, buf: &mut Vec) -> Result<(), std::io::Error> { -- cgit v1.2.3