Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 83ffeb6

Browse files
chore: expose rkyv errors
Signed-off-by: Henry Gressmann <[email protected]>
1 parent 40e570c commit 83ffeb6

File tree

1 file changed

+7
-8
lines changed

1 file changed

+7
-8
lines changed

crates/types/src/archive.rs

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -30,12 +30,12 @@ fn validate_magic(wasm: &[u8]) -> Result<usize, TwasmError> {
3030
Ok(TWASM_MAGIC.len())
3131
}
3232

33-
#[derive(Debug, PartialEq)]
33+
#[derive(Debug)]
3434
pub enum TwasmError {
3535
InvalidMagic,
3636
InvalidVersion,
3737
InvalidPadding,
38-
InvalidArchive,
38+
InvalidArchive(rkyv::rancor::Error),
3939
}
4040

4141
impl Display for TwasmError {
@@ -44,7 +44,7 @@ impl Display for TwasmError {
4444
TwasmError::InvalidMagic => write!(f, "Invalid twasm: invalid magic number"),
4545
TwasmError::InvalidVersion => write!(f, "Invalid twasm: invalid version"),
4646
TwasmError::InvalidPadding => write!(f, "Invalid twasm: invalid padding"),
47-
TwasmError::InvalidArchive => write!(f, "Invalid twasm: invalid archive"),
47+
TwasmError::InvalidArchive(e) => write!(f, "Invalid twasm: {}", e),
4848
}
4949
}
5050
}
@@ -58,9 +58,8 @@ impl TinyWasmModule {
5858
/// Creates a `TinyWasmModule` from a slice of bytes.
5959
pub fn from_twasm(wasm: &[u8]) -> Result<TinyWasmModule, TwasmError> {
6060
let len = validate_magic(wasm)?;
61-
let root =
62-
access::<Archived<Self>, rkyv::rancor::Error>(&wasm[len..]).map_err(|_| TwasmError::InvalidArchive)?;
63-
deserialize::<TinyWasmModule, rkyv::rancor::Error>(root).map_err(|_e| TwasmError::InvalidArchive)
61+
let root = access::<Archived<Self>, rkyv::rancor::Error>(&wasm[len..]).map_err(TwasmError::InvalidArchive)?;
62+
deserialize::<TinyWasmModule, rkyv::rancor::Error>(root).map_err(TwasmError::InvalidArchive)
6463
}
6564

6665
/// Serializes the `TinyWasmModule` into a vector of bytes.
@@ -93,14 +92,14 @@ mod tests {
9392
let wasm = TinyWasmModule::default();
9493
let mut twasm = wasm.serialize_twasm();
9594
twasm[0] = 0;
96-
assert_eq!(TinyWasmModule::from_twasm(&twasm), Err(TwasmError::InvalidMagic));
95+
assert!(matches!(TinyWasmModule::from_twasm(&twasm), Err(TwasmError::InvalidMagic)));
9796
}
9897

9998
#[test]
10099
fn test_invalid_version() {
101100
let wasm = TinyWasmModule::default();
102101
let mut twasm = wasm.serialize_twasm();
103102
twasm[4] = 0;
104-
assert_eq!(TinyWasmModule::from_twasm(&twasm), Err(TwasmError::InvalidVersion));
103+
assert!(matches!(TinyWasmModule::from_twasm(&twasm), Err(TwasmError::InvalidVersion)));
105104
}
106105
}

0 commit comments

Comments
 (0)