diff options
| author | mat <github@matdoes.dev> | 2022-04-22 04:33:58 +0000 |
|---|---|---|
| committer | mat <github@matdoes.dev> | 2022-04-22 04:33:58 +0000 |
| commit | 248f752748a0033db7f8242ee0ecd73ea8ce8ec9 (patch) | |
| tree | 5412418d61b91d5b4174685cdb544a561e22eae6 /azalea-nbt | |
| parent | 7cdd4171453ead8645b082f0cf5879f7d1a39660 (diff) | |
| download | azalea-drasl-248f752748a0033db7f8242ee0ecd73ea8ce8ec9.tar.xz | |
simplify error handling
Diffstat (limited to 'azalea-nbt')
| -rwxr-xr-x[-rw-r--r--] | azalea-nbt/Cargo.toml | 0 | ||||
| -rwxr-xr-x[-rw-r--r--] | azalea-nbt/README.md | 0 | ||||
| -rwxr-xr-x[-rw-r--r--] | azalea-nbt/benches/my_benchmark.rs | 0 | ||||
| -rwxr-xr-x[-rw-r--r--] | azalea-nbt/src/decode.rs | 34 | ||||
| -rwxr-xr-x[-rw-r--r--] | azalea-nbt/src/encode.rs | 0 | ||||
| -rwxr-xr-x[-rw-r--r--] | azalea-nbt/src/error.rs | 11 | ||||
| -rwxr-xr-x[-rw-r--r--] | azalea-nbt/src/lib.rs | 0 | ||||
| -rwxr-xr-x[-rw-r--r--] | azalea-nbt/src/tag.rs | 0 | ||||
| -rwxr-xr-x[-rw-r--r--] | azalea-nbt/tests/bigtest.nbt | bin | 507 -> 507 bytes | |||
| -rwxr-xr-x[-rw-r--r--] | azalea-nbt/tests/complex_player.dat | bin | 1379 -> 1379 bytes | |||
| -rwxr-xr-x[-rw-r--r--] | azalea-nbt/tests/hello_world.nbt | bin | 33 -> 33 bytes | |||
| -rwxr-xr-x[-rw-r--r--] | azalea-nbt/tests/inttest.nbt | bin | 95 -> 95 bytes | |||
| -rwxr-xr-x[-rw-r--r--] | azalea-nbt/tests/level.dat | bin | 1922 -> 1922 bytes | |||
| -rwxr-xr-x[-rw-r--r--] | azalea-nbt/tests/simple_player.dat | bin | 440 -> 440 bytes | |||
| -rwxr-xr-x[-rw-r--r--] | azalea-nbt/tests/stringtest.nbt | bin | 251 -> 251 bytes | |||
| -rwxr-xr-x[-rw-r--r--] | azalea-nbt/tests/tests.rs | 0 |
16 files changed, 28 insertions, 17 deletions
diff --git a/azalea-nbt/Cargo.toml b/azalea-nbt/Cargo.toml index d4817233..d4817233 100644..100755 --- a/azalea-nbt/Cargo.toml +++ b/azalea-nbt/Cargo.toml diff --git a/azalea-nbt/README.md b/azalea-nbt/README.md index 0573bce2..0573bce2 100644..100755 --- a/azalea-nbt/README.md +++ b/azalea-nbt/README.md diff --git a/azalea-nbt/benches/my_benchmark.rs b/azalea-nbt/benches/my_benchmark.rs index 7b44d610..7b44d610 100644..100755 --- a/azalea-nbt/benches/my_benchmark.rs +++ b/azalea-nbt/benches/my_benchmark.rs diff --git a/azalea-nbt/src/decode.rs b/azalea-nbt/src/decode.rs index 41689a46..e4968811 100644..100755 --- a/azalea-nbt/src/decode.rs +++ b/azalea-nbt/src/decode.rs @@ -11,13 +11,13 @@ async fn read_string<R>(stream: &mut R) -> Result<String, Error> where R: AsyncRead + std::marker::Unpin, { - let length = stream.read_u16().await.map_err(|_| Error::InvalidTag)?; + let length = stream.read_u16().await?; let mut buf = Vec::with_capacity(length as usize); for _ in 0..length { - buf.push(stream.read_u8().await.map_err(|_| Error::InvalidTag)?); + buf.push(stream.read_u8().await?); } - String::from_utf8(buf).map_err(|_| Error::InvalidTag) + Ok(String::from_utf8(buf)?) } impl Tag { @@ -31,26 +31,26 @@ impl Tag { // a TAG_Compound, and is not named despite being in a TAG_Compound 0 => Tag::End, // A single signed byte - 1 => Tag::Byte(stream.read_i8().await.map_err(|_| Error::InvalidTag)?), + 1 => Tag::Byte(stream.read_i8().await?), // A single signed, big endian 16 bit integer - 2 => Tag::Short(stream.read_i16().await.map_err(|_| Error::InvalidTag)?), + 2 => Tag::Short(stream.read_i16().await?), // A single signed, big endian 32 bit integer - 3 => Tag::Int(stream.read_i32().await.map_err(|_| Error::InvalidTag)?), + 3 => Tag::Int(stream.read_i32().await?), // A single signed, big endian 64 bit integer - 4 => Tag::Long(stream.read_i64().await.map_err(|_| Error::InvalidTag)?), + 4 => Tag::Long(stream.read_i64().await?), // A single, big endian IEEE-754 single-precision floating point // number (NaN possible) - 5 => Tag::Float(stream.read_f32().await.map_err(|_| Error::InvalidTag)?), + 5 => Tag::Float(stream.read_f32().await?), // A single, big endian IEEE-754 double-precision floating point // number (NaN possible) - 6 => Tag::Double(stream.read_f64().await.map_err(|_| Error::InvalidTag)?), + 6 => Tag::Double(stream.read_f64().await?), // A length-prefixed array of signed bytes. The prefix is a signed // integer (thus 4 bytes) 7 => { - let length = stream.read_i32().await.map_err(|_| Error::InvalidTag)?; + let length = stream.read_i32().await?; let mut bytes = Vec::with_capacity(length as usize); for _ in 0..length { - bytes.push(stream.read_i8().await.map_err(|_| Error::InvalidTag)?); + bytes.push(stream.read_i8().await?); } Tag::ByteArray(bytes) } @@ -67,8 +67,8 @@ impl Tag { // another reference implementation by Mojang uses 1 instead; // parsers should accept any type if the length is <= 0). 9 => { - let type_id = stream.read_u8().await.map_err(|_| Error::InvalidTag)?; - let length = stream.read_i32().await.map_err(|_| Error::InvalidTag)?; + let type_id = stream.read_u8().await?; + let length = stream.read_i32().await?; let mut list = Vec::with_capacity(length as usize); for _ in 0..length { list.push(Tag::read_known(stream, type_id).await?); @@ -94,20 +94,20 @@ impl Tag { // signed integer (thus 4 bytes) and indicates the number of 4 byte // integers. 11 => { - let length = stream.read_i32().await.map_err(|_| Error::InvalidTag)?; + let length = stream.read_i32().await?; let mut ints = Vec::with_capacity(length as usize); for _ in 0..length { - ints.push(stream.read_i32().await.map_err(|_| Error::InvalidTag)?); + ints.push(stream.read_i32().await?); } Tag::IntArray(ints) } // A length-prefixed array of signed longs. The prefix is a signed // integer (thus 4 bytes) and indicates the number of 8 byte longs. 12 => { - let length = stream.read_i32().await.map_err(|_| Error::InvalidTag)?; + let length = stream.read_i32().await?; let mut longs = Vec::with_capacity(length as usize); for _ in 0..length { - longs.push(stream.read_i64().await.map_err(|_| Error::InvalidTag)?); + longs.push(stream.read_i64().await?); } Tag::LongArray(longs) } diff --git a/azalea-nbt/src/encode.rs b/azalea-nbt/src/encode.rs index 9ce4faf4..9ce4faf4 100644..100755 --- a/azalea-nbt/src/encode.rs +++ b/azalea-nbt/src/encode.rs diff --git a/azalea-nbt/src/error.rs b/azalea-nbt/src/error.rs index 05ff15e0..278d2770 100644..100755 --- a/azalea-nbt/src/error.rs +++ b/azalea-nbt/src/error.rs @@ -14,3 +14,14 @@ impl std::fmt::Display for Error { } } } + +impl From<std::io::Error> for Error { + fn from(err: std::io::Error) -> Self { + Error::WriteError + } +} +impl From<std::string::FromUtf8Error> for Error { + fn from(err: std::string::FromUtf8Error) -> Self { + Error::WriteError + } +}
\ No newline at end of file diff --git a/azalea-nbt/src/lib.rs b/azalea-nbt/src/lib.rs index d14fd929..d14fd929 100644..100755 --- a/azalea-nbt/src/lib.rs +++ b/azalea-nbt/src/lib.rs diff --git a/azalea-nbt/src/tag.rs b/azalea-nbt/src/tag.rs index f11b8889..f11b8889 100644..100755 --- a/azalea-nbt/src/tag.rs +++ b/azalea-nbt/src/tag.rs diff --git a/azalea-nbt/tests/bigtest.nbt b/azalea-nbt/tests/bigtest.nbt Binary files differindex dc3769bc..dc3769bc 100644..100755 --- a/azalea-nbt/tests/bigtest.nbt +++ b/azalea-nbt/tests/bigtest.nbt diff --git a/azalea-nbt/tests/complex_player.dat b/azalea-nbt/tests/complex_player.dat Binary files differindex d7f3fcbd..d7f3fcbd 100644..100755 --- a/azalea-nbt/tests/complex_player.dat +++ b/azalea-nbt/tests/complex_player.dat diff --git a/azalea-nbt/tests/hello_world.nbt b/azalea-nbt/tests/hello_world.nbt Binary files differindex f3f5e21a..f3f5e21a 100644..100755 --- a/azalea-nbt/tests/hello_world.nbt +++ b/azalea-nbt/tests/hello_world.nbt diff --git a/azalea-nbt/tests/inttest.nbt b/azalea-nbt/tests/inttest.nbt Binary files differindex ad9255f2..ad9255f2 100644..100755 --- a/azalea-nbt/tests/inttest.nbt +++ b/azalea-nbt/tests/inttest.nbt diff --git a/azalea-nbt/tests/level.dat b/azalea-nbt/tests/level.dat Binary files differindex e5d11b8c..e5d11b8c 100644..100755 --- a/azalea-nbt/tests/level.dat +++ b/azalea-nbt/tests/level.dat diff --git a/azalea-nbt/tests/simple_player.dat b/azalea-nbt/tests/simple_player.dat Binary files differindex e5091b41..e5091b41 100644..100755 --- a/azalea-nbt/tests/simple_player.dat +++ b/azalea-nbt/tests/simple_player.dat diff --git a/azalea-nbt/tests/stringtest.nbt b/azalea-nbt/tests/stringtest.nbt Binary files differindex ac111433..ac111433 100644..100755 --- a/azalea-nbt/tests/stringtest.nbt +++ b/azalea-nbt/tests/stringtest.nbt diff --git a/azalea-nbt/tests/tests.rs b/azalea-nbt/tests/tests.rs index 75b3a646..75b3a646 100644..100755 --- a/azalea-nbt/tests/tests.rs +++ b/azalea-nbt/tests/tests.rs |
