@@ -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 ) ]
3434pub enum TwasmError {
3535 InvalidMagic ,
3636 InvalidVersion ,
3737 InvalidPadding ,
38- InvalidArchive ,
38+ InvalidArchive ( rkyv :: rancor :: Error ) ,
3939}
4040
4141impl 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