From 4d7bf6c50eda970ac4998f10f5e46006dffb6ca2 Mon Sep 17 00:00:00 2001 From: mat Date: Sat, 30 Apr 2022 01:43:00 -0500 Subject: significantly optimize reading Vec unfortunately, this introduces the requirement of using rust nightly --- azalea-protocol/src/mc_buf/write.rs | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (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 bd5e3f52..4c7ac60c 100755 --- a/azalea-protocol/src/mc_buf/write.rs +++ b/azalea-protocol/src/mc_buf/write.rs @@ -212,11 +212,17 @@ impl McBufWritable for UnsizedByteArray { // 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> { + default fn write_into(&self, buf: &mut Vec) -> Result<(), std::io::Error> { buf.write_list(self, |buf, i| T::write_into(i, buf)) } } +impl McBufWritable for Vec { + fn write_into(&self, buf: &mut Vec) -> Result<(), std::io::Error> { + buf.write_byte_array(self) + } +} + // string impl McBufWritable for String { fn write_into(&self, buf: &mut Vec) -> Result<(), std::io::Error> { -- cgit v1.2.3