aboutsummaryrefslogtreecommitdiff
path: root/azalea-nbt/src/encode.rs
diff options
context:
space:
mode:
authormat <github@matdoes.dev>2022-08-24 21:02:11 -0500
committermat <github@matdoes.dev>2022-08-24 21:02:11 -0500
commite33d57e767a8cc87d9616298c10b374fa0c72efe (patch)
treecf36006b00e70a0a17cf45c54cc3948d9c06eea1 /azalea-nbt/src/encode.rs
parent2a2e82efeb4e090abf9144b39be834972c7a0a4d (diff)
downloadazalea-drasl-e33d57e767a8cc87d9616298c10b374fa0c72efe.tar.xz
optimize nbt bytearray
Diffstat (limited to 'azalea-nbt/src/encode.rs')
-rwxr-xr-xazalea-nbt/src/encode.rs21
1 files changed, 5 insertions, 16 deletions
diff --git a/azalea-nbt/src/encode.rs b/azalea-nbt/src/encode.rs
index 1bb8f366..53e618f4 100755
--- a/azalea-nbt/src/encode.rs
+++ b/azalea-nbt/src/encode.rs
@@ -58,10 +58,7 @@ fn write_compound(
Tag::ByteArray(value) => {
writer.write_u8(7)?;
write_string(writer, key)?;
- writer.write_i32::<BE>(value.len() as i32)?;
- for &byte in value {
- writer.write_i8(byte)?;
- }
+ write_bytearray(writer, value)?
}
Tag::String(value) => {
writer.write_u8(8)?;
@@ -81,18 +78,12 @@ fn write_compound(
Tag::IntArray(value) => {
writer.write_u8(11)?;
write_string(writer, key)?;
- writer.write_i32::<BE>(value.len() as i32)?;
- for &int in value {
- writer.write_i32::<BE>(int)?;
- }
+ write_intarray(writer, value)?
}
Tag::LongArray(value) => {
writer.write_u8(12)?;
write_string(writer, key)?;
- writer.write_i32::<BE>(value.len() as i32)?;
- for &long in value {
- writer.write_i64::<BE>(long)?;
- }
+ write_longarray(writer, value)?
}
}
}
@@ -150,11 +141,9 @@ fn write_list(writer: &mut dyn Write, value: &[Tag]) -> Result<(), Error> {
}
#[inline]
-fn write_bytearray(writer: &mut dyn Write, value: &Vec<i8>) -> Result<(), Error> {
+fn write_bytearray(writer: &mut dyn Write, value: &Vec<u8>) -> Result<(), Error> {
writer.write_i32::<BE>(value.len() as i32)?;
- for &byte in value {
- writer.write_i8(byte)?;
- }
+ writer.write_all(value)?;
Ok(())
}