summaryrefslogtreecommitdiff
path: root/crates
diff options
context:
space:
mode:
authorHenry Gressmann <mail@henrygressmann.de>2024-09-11 21:56:15 +0200
committerHenry Gressmann <mail@henrygressmann.de>2024-09-11 21:56:15 +0200
commitfee68d05ba85be2a358c48697bdeba2bc360b9c6 (patch)
tree2ad1fdaacae403573888c76ae4afd950dd8a069a /crates
parent4238c920b22136e35eff3c91e3a940dbbc553702 (diff)
chore: update deps, improve contributing guidelines, improve ci
Signed-off-by: Henry Gressmann <mail@henrygressmann.de>
Diffstat (limited to 'crates')
-rw-r--r--crates/parser/Cargo.toml3
-rw-r--r--crates/tinywasm/Cargo.toml21
-rw-r--r--crates/tinywasm/tests/generated/wasm-annotations.csv2
-rw-r--r--crates/tinywasm/tests/generated/wasm-multi-memory.csv2
-rw-r--r--crates/tinywasm/tests/test-wasm-annotations.rs1
-rw-r--r--crates/tinywasm/tests/test-wasm-multi-memory.rs1
-rw-r--r--crates/tinywasm/tests/testsuite/run.rs2
-rw-r--r--crates/types/Cargo.toml5
-rw-r--r--crates/types/src/archive.rs49
-rw-r--r--crates/types/src/instructions.rs6
-rw-r--r--crates/types/src/lib.rs38
-rw-r--r--crates/types/src/value.rs2
12 files changed, 72 insertions, 60 deletions
diff --git a/crates/parser/Cargo.toml b/crates/parser/Cargo.toml
index efb0817..fa16664 100644
--- a/crates/parser/Cargo.toml
+++ b/crates/parser/Cargo.toml
@@ -9,7 +9,7 @@ repository.workspace=true
rust-version.workspace=true
[dependencies]
-wasmparser={version="0.216", default-features=false, features=["validate"]}
+wasmparser={version="0.217", default-features=false, features=["validate", "features"]}
log={workspace=true, optional=true}
tinywasm-types={version="0.8.0-alpha.0", path="../types", default-features=false}
@@ -17,4 +17,3 @@ tinywasm-types={version="0.8.0-alpha.0", path="../types", default-features=false
default=["std", "logging"]
logging=["log"]
std=["tinywasm-types/std", "wasmparser/std"]
-nightly=[]
diff --git a/crates/tinywasm/Cargo.toml b/crates/tinywasm/Cargo.toml
index ebe7ffd..264d4b9 100644
--- a/crates/tinywasm/Cargo.toml
+++ b/crates/tinywasm/Cargo.toml
@@ -33,49 +33,42 @@ serde={version="1.0", features=["derive"]}
default=["std", "parser", "logging", "archive"]
logging=["log", "tinywasm-parser?/logging", "tinywasm-types/logging"]
std=["tinywasm-parser?/std", "tinywasm-types/std"]
-parser=["tinywasm-parser"]
+parser=["dep:tinywasm-parser"]
archive=["tinywasm-types/archive"]
-simd=[]
-nightly=["tinywasm-parser?/nightly"]
+nightly=[]
[[test]]
name="test-wasm-1"
harness=false
-test=false
[[test]]
name="test-wasm-2"
harness=false
-test=false
[[test]]
name="test-wasm-multi-memory"
harness=false
-test=false
[[test]]
-name="test-wasm-memory64"
+name="test-wasm-annotations"
harness=false
-test=false
[[test]]
-name="test-wasm-annotations"
+name="test-wasm-custom-page-sizes"
harness=false
-test=false
[[test]]
-name="test-wasm-extended-const"
+name="test-wasm-memory64"
harness=false
test=false
[[test]]
-name="test-wasm-simd"
+name="test-wasm-extended-const"
harness=false
test=false
-
[[test]]
-name="test-wasm-custom-page-sizes"
+name="test-wasm-simd"
harness=false
test=false
diff --git a/crates/tinywasm/tests/generated/wasm-annotations.csv b/crates/tinywasm/tests/generated/wasm-annotations.csv
index 582bc1b..1e66217 100644
--- a/crates/tinywasm/tests/generated/wasm-annotations.csv
+++ b/crates/tinywasm/tests/generated/wasm-annotations.csv
@@ -1 +1 @@
-0.8.0,331,286,[{"name":"annotations.wast","passed":74,"failed":0},{"name":"id.wast","passed":7,"failed":0},{"name":"simd_lane.wast","passed":189,"failed":286},{"name":"token.wast","passed":61,"failed":0}]
+0.8.0,142,0,[{"name":"annotations.wast","passed":74,"failed":0},{"name":"annotations/simd_lane.wast (skipped)","passed":0,"failed":0},{"name":"id.wast","passed":7,"failed":0},{"name":"token.wast","passed":61,"failed":0}]
diff --git a/crates/tinywasm/tests/generated/wasm-multi-memory.csv b/crates/tinywasm/tests/generated/wasm-multi-memory.csv
index e4c4533..b730f97 100644
--- a/crates/tinywasm/tests/generated/wasm-multi-memory.csv
+++ b/crates/tinywasm/tests/generated/wasm-multi-memory.csv
@@ -1 +1 @@
-0.8.0,1870,1,[{"name":"address0.wast","passed":92,"failed":0},{"name":"address1.wast","passed":127,"failed":0},{"name":"align.wast","passed":160,"failed":0},{"name":"align0.wast","passed":5,"failed":0},{"name":"binary.wast","passed":124,"failed":0},{"name":"binary0.wast","passed":7,"failed":0},{"name":"data.wast","passed":61,"failed":0},{"name":"data0.wast","passed":7,"failed":0},{"name":"data1.wast","passed":14,"failed":0},{"name":"data_drop0.wast","passed":11,"failed":0},{"name":"exports0.wast","passed":8,"failed":0},{"name":"float_exprs0.wast","passed":14,"failed":0},{"name":"float_exprs1.wast","passed":3,"failed":0},{"name":"float_memory0.wast","passed":30,"failed":0},{"name":"imports.wast","passed":175,"failed":0},{"name":"imports0.wast","passed":8,"failed":0},{"name":"imports1.wast","passed":5,"failed":0},{"name":"imports2.wast","passed":20,"failed":0},{"name":"imports3.wast","passed":10,"failed":0},{"name":"imports4.wast","passed":16,"failed":0},{"name":"linking0.wast","passed":6,"failed":0},{"name":"linking1.wast","passed":14,"failed":0},{"name":"linking2.wast","passed":11,"failed":0},{"name":"linking3.wast","passed":14,"failed":0},{"name":"load.wast","passed":118,"failed":0},{"name":"load0.wast","passed":3,"failed":0},{"name":"load1.wast","passed":18,"failed":0},{"name":"load2.wast","passed":38,"failed":0},{"name":"memory-multi.wast","passed":6,"failed":0},{"name":"memory.wast","passed":86,"failed":0},{"name":"memory_copy0.wast","passed":29,"failed":0},{"name":"memory_copy1.wast","passed":14,"failed":0},{"name":"memory_fill0.wast","passed":16,"failed":0},{"name":"memory_grow.wast","passed":157,"failed":0},{"name":"memory_init0.wast","passed":13,"failed":0},{"name":"memory_size.wast","passed":49,"failed":0},{"name":"memory_size0.wast","passed":8,"failed":0},{"name":"memory_size1.wast","passed":15,"failed":0},{"name":"memory_size2.wast","passed":21,"failed":0},{"name":"memory_size3.wast","passed":2,"failed":0},{"name":"memory_trap0.wast","passed":14,"failed":0},{"name":"memory_trap1.wast","passed":168,"failed":0},{"name":"simd_memory-multi.wast","passed":0,"failed":1},{"name":"start0.wast","passed":9,"failed":0},{"name":"store.wast","passed":111,"failed":0},{"name":"store0.wast","passed":5,"failed":0},{"name":"store1.wast","passed":13,"failed":0},{"name":"traps0.wast","passed":15,"failed":0}]
+0.8.0,1870,0,[{"name":"address0.wast","passed":92,"failed":0},{"name":"address1.wast","passed":127,"failed":0},{"name":"align.wast","passed":160,"failed":0},{"name":"align0.wast","passed":5,"failed":0},{"name":"binary.wast","passed":124,"failed":0},{"name":"binary0.wast","passed":7,"failed":0},{"name":"data.wast","passed":61,"failed":0},{"name":"data0.wast","passed":7,"failed":0},{"name":"data1.wast","passed":14,"failed":0},{"name":"data_drop0.wast","passed":11,"failed":0},{"name":"exports0.wast","passed":8,"failed":0},{"name":"float_exprs0.wast","passed":14,"failed":0},{"name":"float_exprs1.wast","passed":3,"failed":0},{"name":"float_memory0.wast","passed":30,"failed":0},{"name":"imports.wast","passed":175,"failed":0},{"name":"imports0.wast","passed":8,"failed":0},{"name":"imports1.wast","passed":5,"failed":0},{"name":"imports2.wast","passed":20,"failed":0},{"name":"imports3.wast","passed":10,"failed":0},{"name":"imports4.wast","passed":16,"failed":0},{"name":"linking0.wast","passed":6,"failed":0},{"name":"linking1.wast","passed":14,"failed":0},{"name":"linking2.wast","passed":11,"failed":0},{"name":"linking3.wast","passed":14,"failed":0},{"name":"load.wast","passed":118,"failed":0},{"name":"load0.wast","passed":3,"failed":0},{"name":"load1.wast","passed":18,"failed":0},{"name":"load2.wast","passed":38,"failed":0},{"name":"memory-multi.wast","passed":6,"failed":0},{"name":"memory.wast","passed":86,"failed":0},{"name":"memory_copy0.wast","passed":29,"failed":0},{"name":"memory_copy1.wast","passed":14,"failed":0},{"name":"memory_fill0.wast","passed":16,"failed":0},{"name":"memory_grow.wast","passed":157,"failed":0},{"name":"memory_init0.wast","passed":13,"failed":0},{"name":"memory_size.wast","passed":49,"failed":0},{"name":"memory_size0.wast","passed":8,"failed":0},{"name":"memory_size1.wast","passed":15,"failed":0},{"name":"memory_size2.wast","passed":21,"failed":0},{"name":"memory_size3.wast","passed":2,"failed":0},{"name":"memory_trap0.wast","passed":14,"failed":0},{"name":"memory_trap1.wast","passed":168,"failed":0},{"name":"multi-memory/simd_memory-multi.wast (skipped)","passed":0,"failed":0},{"name":"start0.wast","passed":9,"failed":0},{"name":"store.wast","passed":111,"failed":0},{"name":"store0.wast","passed":5,"failed":0},{"name":"store1.wast","passed":13,"failed":0},{"name":"traps0.wast","passed":15,"failed":0}]
diff --git a/crates/tinywasm/tests/test-wasm-annotations.rs b/crates/tinywasm/tests/test-wasm-annotations.rs
index fa40467..c521156 100644
--- a/crates/tinywasm/tests/test-wasm-annotations.rs
+++ b/crates/tinywasm/tests/test-wasm-annotations.rs
@@ -7,6 +7,7 @@ fn main() -> Result<()> {
let mut test_suite = TestSuite::new();
TestSuite::set_log_level(log::LevelFilter::Off);
+ test_suite.skip("annotations/simd_lane.wast");
test_suite.run_spec_group(wasm_testsuite::get_proposal_tests("annotations"))?;
test_suite.save_csv("./tests/generated/wasm-annotations.csv", env!("CARGO_PKG_VERSION"))?;
diff --git a/crates/tinywasm/tests/test-wasm-multi-memory.rs b/crates/tinywasm/tests/test-wasm-multi-memory.rs
index 2cee13d..9b1f8b7 100644
--- a/crates/tinywasm/tests/test-wasm-multi-memory.rs
+++ b/crates/tinywasm/tests/test-wasm-multi-memory.rs
@@ -7,6 +7,7 @@ fn main() -> Result<()> {
let mut test_suite = TestSuite::new();
TestSuite::set_log_level(log::LevelFilter::Off);
+ test_suite.skip("multi-memory/simd_memory-multi.wast");
test_suite.run_spec_group(wasm_testsuite::get_proposal_tests("multi-memory"))?;
test_suite.save_csv("./tests/generated/wasm-multi-memory.csv", env!("CARGO_PKG_VERSION"))?;
diff --git a/crates/tinywasm/tests/testsuite/run.rs b/crates/tinywasm/tests/testsuite/run.rs
index a179956..ac11eda 100644
--- a/crates/tinywasm/tests/testsuite/run.rs
+++ b/crates/tinywasm/tests/testsuite/run.rs
@@ -184,7 +184,7 @@ impl TestSuite {
let span = directive.span();
use wast::WastDirective::{
AssertExhaustion, AssertInvalid, AssertMalformed, AssertReturn, AssertTrap, AssertUnlinkable, Invoke,
- Register, Wat,
+ Module as Wat, Register,
};
match directive {
diff --git a/crates/types/Cargo.toml b/crates/types/Cargo.toml
index b643964..7531ab4 100644
--- a/crates/types/Cargo.toml
+++ b/crates/types/Cargo.toml
@@ -10,11 +10,10 @@ rust-version.workspace=true
[dependencies]
log={workspace=true, optional=true}
-rkyv={version="0.7", optional=true, default-features=false, features=["size_32", "validation"]}
-bytecheck={version="0.7", optional=true}
+rkyv={version="0.8.0-rc.2", optional=true, default-features=false, features=["alloc", "bytecheck"]}
[features]
default=["std", "logging", "archive"]
std=["rkyv?/std"]
-archive=["dep:rkyv", "dep:bytecheck"]
+archive=["dep:rkyv"]
logging=["dep:log"]
diff --git a/crates/types/src/archive.rs b/crates/types/src/archive.rs
index cce0501..cc60314 100644
--- a/crates/types/src/archive.rs
+++ b/crates/types/src/archive.rs
@@ -2,17 +2,19 @@ use core::fmt::{Display, Formatter};
use crate::TinyWasmModule;
use rkyv::{
- check_archived_root,
- ser::{serializers::AllocSerializer, Serializer},
- Deserialize,
+ access,
+ api::high::to_bytes_in_with_alloc,
+ deserialize,
+ ser::{allocator::Arena, WriterExt},
+ Archived,
};
const TWASM_MAGIC_PREFIX: &[u8; 4] = b"TWAS";
-const TWASM_VERSION: &[u8; 2] = b"01";
+const TWASM_VERSION: &[u8; 2] = b"02";
#[rustfmt::skip]
const TWASM_MAGIC: [u8; 16] = [ TWASM_MAGIC_PREFIX[0], TWASM_MAGIC_PREFIX[1], TWASM_MAGIC_PREFIX[2], TWASM_MAGIC_PREFIX[3], TWASM_VERSION[0], TWASM_VERSION[1], 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];
-pub use rkyv::AlignedVec;
+pub use rkyv::util::AlignedVec;
fn validate_magic(wasm: &[u8]) -> Result<usize, TwasmError> {
if wasm.len() < TWASM_MAGIC.len() || &wasm[..TWASM_MAGIC_PREFIX.len()] != TWASM_MAGIC_PREFIX {
@@ -28,7 +30,7 @@ fn validate_magic(wasm: &[u8]) -> Result<usize, TwasmError> {
Ok(TWASM_MAGIC.len())
}
-#[derive(Debug)]
+#[derive(Debug, PartialEq)]
pub enum TwasmError {
InvalidMagic,
InvalidVersion,
@@ -56,20 +58,21 @@ impl TinyWasmModule {
/// Creates a `TinyWasmModule` from a slice of bytes.
pub fn from_twasm(wasm: &[u8]) -> Result<TinyWasmModule, TwasmError> {
let len = validate_magic(wasm)?;
- let root = check_archived_root::<Self>(&wasm[len..]).map_err(|_e| TwasmError::InvalidArchive)?;
- Ok(root.deserialize(&mut rkyv::Infallible).unwrap())
+ let root =
+ access::<Archived<Self>, rkyv::rancor::Error>(&wasm[len..]).map_err(|_| TwasmError::InvalidArchive)?;
+ deserialize::<TinyWasmModule, rkyv::rancor::Error>(root).map_err(|_e| TwasmError::InvalidArchive)
}
/// Serializes the `TinyWasmModule` into a vector of bytes.
/// `AlignedVec` can be deferenced as a slice of bytes and
/// implements `io::Write` when the `std` feature is enabled.
- pub fn serialize_twasm(&self) -> rkyv::AlignedVec {
- let mut serializer = AllocSerializer::<0>::default();
- serializer.pad(TWASM_MAGIC.len()).unwrap();
- serializer.serialize_value(self).unwrap();
- let mut out = serializer.into_serializer().into_inner();
- out[..TWASM_MAGIC.len()].copy_from_slice(&TWASM_MAGIC);
- out
+ pub fn serialize_twasm(&self) -> AlignedVec {
+ let mut arena = Arena::new();
+ let mut bytes = AlignedVec::new();
+ <AlignedVec as WriterExt<rkyv::rancor::Error>>::pad(&mut bytes, TWASM_MAGIC.len()).unwrap();
+ let mut bytes = to_bytes_in_with_alloc::<_, _, rkyv::rancor::Error>(self, bytes, arena.acquire()).unwrap();
+ bytes[..TWASM_MAGIC.len()].copy_from_slice(&TWASM_MAGIC);
+ bytes
}
}
@@ -84,4 +87,20 @@ mod tests {
let wasm2 = TinyWasmModule::from_twasm(&twasm).unwrap();
assert_eq!(wasm, wasm2);
}
+
+ #[test]
+ fn test_invalid_magic() {
+ let wasm = TinyWasmModule::default();
+ let mut twasm = wasm.serialize_twasm();
+ twasm[0] = 0;
+ assert_eq!(TinyWasmModule::from_twasm(&twasm), Err(TwasmError::InvalidMagic));
+ }
+
+ #[test]
+ fn test_invalid_version() {
+ let wasm = TinyWasmModule::default();
+ let mut twasm = wasm.serialize_twasm();
+ twasm[4] = 0;
+ assert_eq!(TinyWasmModule::from_twasm(&twasm), Err(TwasmError::InvalidVersion));
+ }
}
diff --git a/crates/types/src/instructions.rs b/crates/types/src/instructions.rs
index d77d66d..2030942 100644
--- a/crates/types/src/instructions.rs
+++ b/crates/types/src/instructions.rs
@@ -3,7 +3,7 @@ use crate::{DataAddr, ElemAddr, MemAddr};
/// Represents a memory immediate in a WebAssembly memory instruction.
#[derive(Debug, Copy, Clone, PartialEq)]
-#[cfg_attr(feature = "archive", derive(rkyv::Archive, rkyv::Serialize, rkyv::Deserialize), archive(check_bytes))]
+#[cfg_attr(feature = "archive", derive(rkyv::Archive, rkyv::Serialize, rkyv::Deserialize))]
pub struct MemoryArg {
pub offset: u64,
pub mem_addr: MemAddr,
@@ -15,7 +15,7 @@ type EndOffset = u32;
type ElseOffset = u32;
#[derive(Debug, Clone, Copy, PartialEq)]
-#[cfg_attr(feature = "archive", derive(rkyv::Archive, rkyv::Serialize, rkyv::Deserialize), archive(check_bytes))]
+#[cfg_attr(feature = "archive", derive(rkyv::Archive, rkyv::Serialize, rkyv::Deserialize))]
pub enum ConstInstruction {
I32Const(i32),
I64Const(i64),
@@ -38,7 +38,7 @@ pub enum ConstInstruction {
///
/// See <https://webassembly.github.io/spec/core/binary/instructions.html>
#[derive(Debug, Clone, PartialEq)]
-#[cfg_attr(feature = "archive", derive(rkyv::Archive, rkyv::Serialize, rkyv::Deserialize), archive(check_bytes))]
+#[cfg_attr(feature = "archive", derive(rkyv::Archive, rkyv::Serialize, rkyv::Deserialize))]
// should be kept as small as possible (16 bytes max)
#[rustfmt::skip]
pub enum Instruction {
diff --git a/crates/types/src/lib.rs b/crates/types/src/lib.rs
index ce0d4ac..8ee044f 100644
--- a/crates/types/src/lib.rs
+++ b/crates/types/src/lib.rs
@@ -51,7 +51,7 @@ pub mod archive;
/// `TinyWasmModules` are validated before being created, so they are guaranteed to be valid (as long as they were created by `TinyWasm`).
/// This means you should not trust a `TinyWasmModule` created by a third party to be valid.
#[derive(Debug, Clone, Default, PartialEq)]
-#[cfg_attr(feature = "archive", derive(rkyv::Archive, rkyv::Serialize, rkyv::Deserialize), archive(check_bytes))]
+#[cfg_attr(feature = "archive", derive(rkyv::Archive, rkyv::Serialize, rkyv::Deserialize))]
pub struct TinyWasmModule {
/// Optional address of the start function
///
@@ -108,7 +108,7 @@ pub struct TinyWasmModule {
///
/// See <https://webassembly.github.io/spec/core/syntax/types.html#external-types>
#[derive(Debug, Clone, Copy, PartialEq)]
-#[cfg_attr(feature = "archive", derive(rkyv::Archive, rkyv::Serialize, rkyv::Deserialize), archive(check_bytes))]
+#[cfg_attr(feature = "archive", derive(rkyv::Archive, rkyv::Serialize, rkyv::Deserialize))]
pub enum ExternalKind {
/// A WebAssembly Function.
Func,
@@ -179,14 +179,14 @@ impl ExternVal {
///
/// See <https://webassembly.github.io/spec/core/syntax/types.html#function-types>
#[derive(Debug, Clone, PartialEq, Default)]
-#[cfg_attr(feature = "archive", derive(rkyv::Archive, rkyv::Serialize, rkyv::Deserialize), archive(check_bytes))]
+#[cfg_attr(feature = "archive", derive(rkyv::Archive, rkyv::Serialize, rkyv::Deserialize))]
pub struct FuncType {
pub params: Box<[ValType]>,
pub results: Box<[ValType]>,
}
#[derive(Debug, Default, Clone, Copy, PartialEq)]
-#[cfg_attr(feature = "archive", derive(rkyv::Archive, rkyv::Serialize, rkyv::Deserialize), archive(check_bytes))]
+#[cfg_attr(feature = "archive", derive(rkyv::Archive, rkyv::Serialize, rkyv::Deserialize))]
pub struct ValueCounts {
pub c32: u32,
pub c64: u32,
@@ -195,7 +195,7 @@ pub struct ValueCounts {
}
#[derive(Debug, Default, Clone, Copy, PartialEq)]
-#[cfg_attr(feature = "archive", derive(rkyv::Archive, rkyv::Serialize, rkyv::Deserialize), archive(check_bytes))]
+#[cfg_attr(feature = "archive", derive(rkyv::Archive, rkyv::Serialize, rkyv::Deserialize))]
pub struct ValueCountsSmall {
pub c32: u16,
pub c64: u16,
@@ -204,7 +204,7 @@ pub struct ValueCountsSmall {
}
#[derive(Debug, Clone, PartialEq, Default)]
-#[cfg_attr(feature = "archive", derive(rkyv::Archive, rkyv::Serialize, rkyv::Deserialize), archive(check_bytes))]
+#[cfg_attr(feature = "archive", derive(rkyv::Archive, rkyv::Serialize, rkyv::Deserialize))]
pub struct WasmFunction {
pub instructions: Box<[Instruction]>,
pub locals: ValueCounts,
@@ -214,7 +214,7 @@ pub struct WasmFunction {
/// A WebAssembly Module Export
#[derive(Debug, Clone, PartialEq)]
-#[cfg_attr(feature = "archive", derive(rkyv::Archive, rkyv::Serialize, rkyv::Deserialize), archive(check_bytes))]
+#[cfg_attr(feature = "archive", derive(rkyv::Archive, rkyv::Serialize, rkyv::Deserialize))]
pub struct Export {
/// The name of the export.
pub name: Box<str>,
@@ -225,21 +225,21 @@ pub struct Export {
}
#[derive(Debug, Clone, PartialEq)]
-#[cfg_attr(feature = "archive", derive(rkyv::Archive, rkyv::Serialize, rkyv::Deserialize), archive(check_bytes))]
+#[cfg_attr(feature = "archive", derive(rkyv::Archive, rkyv::Serialize, rkyv::Deserialize))]
pub struct Global {
pub ty: GlobalType,
pub init: ConstInstruction,
}
#[derive(Debug, Clone, Copy, PartialEq)]
-#[cfg_attr(feature = "archive", derive(rkyv::Archive, rkyv::Serialize, rkyv::Deserialize), archive(check_bytes))]
+#[cfg_attr(feature = "archive", derive(rkyv::Archive, rkyv::Serialize, rkyv::Deserialize))]
pub struct GlobalType {
pub mutable: bool,
pub ty: ValType,
}
#[derive(Debug, Clone, PartialEq)]
-#[cfg_attr(feature = "archive", derive(rkyv::Archive, rkyv::Serialize, rkyv::Deserialize), archive(check_bytes))]
+#[cfg_attr(feature = "archive", derive(rkyv::Archive, rkyv::Serialize, rkyv::Deserialize))]
pub struct TableType {
pub element_type: ValType,
pub size_initial: u32,
@@ -258,7 +258,7 @@ impl TableType {
/// Represents a memory's type.
#[derive(Debug, Copy, Clone, PartialEq)]
-#[cfg_attr(feature = "archive", derive(rkyv::Archive, rkyv::Serialize, rkyv::Deserialize), archive(check_bytes))]
+#[cfg_attr(feature = "archive", derive(rkyv::Archive, rkyv::Serialize, rkyv::Deserialize))]
pub struct MemoryType {
arch: MemoryArch,
page_count_initial: u64,
@@ -297,14 +297,14 @@ impl MemoryType {
}
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
-#[cfg_attr(feature = "archive", derive(rkyv::Archive, rkyv::Serialize, rkyv::Deserialize), archive(check_bytes))]
+#[cfg_attr(feature = "archive", derive(rkyv::Archive, rkyv::Serialize, rkyv::Deserialize))]
pub enum MemoryArch {
I32,
I64,
}
#[derive(Debug, Clone, PartialEq)]
-#[cfg_attr(feature = "archive", derive(rkyv::Archive, rkyv::Serialize, rkyv::Deserialize), archive(check_bytes))]
+#[cfg_attr(feature = "archive", derive(rkyv::Archive, rkyv::Serialize, rkyv::Deserialize))]
pub struct Import {
pub module: Box<str>,
pub name: Box<str>,
@@ -312,7 +312,7 @@ pub struct Import {
}
#[derive(Debug, Clone, PartialEq)]
-#[cfg_attr(feature = "archive", derive(rkyv::Archive, rkyv::Serialize, rkyv::Deserialize), archive(check_bytes))]
+#[cfg_attr(feature = "archive", derive(rkyv::Archive, rkyv::Serialize, rkyv::Deserialize))]
pub enum ImportKind {
Function(TypeAddr),
Table(TableType),
@@ -333,7 +333,7 @@ impl From<&ImportKind> for ExternalKind {
}
#[derive(Debug, Clone, PartialEq)]
-#[cfg_attr(feature = "archive", derive(rkyv::Archive, rkyv::Serialize, rkyv::Deserialize), archive(check_bytes))]
+#[cfg_attr(feature = "archive", derive(rkyv::Archive, rkyv::Serialize, rkyv::Deserialize))]
pub struct Data {
pub data: Box<[u8]>,
pub range: Range<usize>,
@@ -341,14 +341,14 @@ pub struct Data {
}
#[derive(Debug, Clone, PartialEq)]
-#[cfg_attr(feature = "archive", derive(rkyv::Archive, rkyv::Serialize, rkyv::Deserialize), archive(check_bytes))]
+#[cfg_attr(feature = "archive", derive(rkyv::Archive, rkyv::Serialize, rkyv::Deserialize))]
pub enum DataKind {
Active { mem: MemAddr, offset: ConstInstruction },
Passive,
}
#[derive(Debug, Clone, PartialEq)]
-#[cfg_attr(feature = "archive", derive(rkyv::Archive, rkyv::Serialize, rkyv::Deserialize), archive(check_bytes))]
+#[cfg_attr(feature = "archive", derive(rkyv::Archive, rkyv::Serialize, rkyv::Deserialize))]
pub struct Element {
pub kind: ElementKind,
pub items: Box<[ElementItem]>,
@@ -357,7 +357,7 @@ pub struct Element {
}
#[derive(Debug, Clone, Copy, PartialEq)]
-#[cfg_attr(feature = "archive", derive(rkyv::Archive, rkyv::Serialize, rkyv::Deserialize), archive(check_bytes))]
+#[cfg_attr(feature = "archive", derive(rkyv::Archive, rkyv::Serialize, rkyv::Deserialize))]
pub enum ElementKind {
Passive,
Active { table: TableAddr, offset: ConstInstruction },
@@ -365,7 +365,7 @@ pub enum ElementKind {
}
#[derive(Debug, Clone, Copy, PartialEq)]
-#[cfg_attr(feature = "archive", derive(rkyv::Archive, rkyv::Serialize, rkyv::Deserialize), archive(check_bytes))]
+#[cfg_attr(feature = "archive", derive(rkyv::Archive, rkyv::Serialize, rkyv::Deserialize))]
pub enum ElementItem {
Func(FuncAddr),
Expr(ConstInstruction),
diff --git a/crates/types/src/value.rs b/crates/types/src/value.rs
index 825fa1f..8bbcaf2 100644
--- a/crates/types/src/value.rs
+++ b/crates/types/src/value.rs
@@ -182,7 +182,7 @@ impl WasmValue {
/// Type of a WebAssembly value.
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
-#[cfg_attr(feature = "archive", derive(rkyv::Archive, rkyv::Serialize, rkyv::Deserialize), archive(check_bytes))]
+#[cfg_attr(feature = "archive", derive(rkyv::Archive, rkyv::Serialize, rkyv::Deserialize))]
pub enum ValType {
/// A 32-bit integer.
I32,