#![allow(dead_code)] use wasmer::{Function, Global, LazyInit, Memory, NativeFunc, Table, WasmerEnv}; #[derive(WasmerEnv)] struct MyEnv { num: u32, nums: Vec, } fn impls_wasmer_env() -> bool { true } #[test] fn test_derive() { let _my_env = MyEnv { num: 3, nums: vec![1, 2, 3], }; assert!(impls_wasmer_env::()); } #[derive(WasmerEnv)] struct MyEnvWithMemory { num: u32, nums: Vec, #[wasmer(export)] memory: LazyInit, } #[derive(WasmerEnv)] struct MyEnvWithFuncs { num: u32, nums: Vec, #[wasmer(export)] memory: LazyInit, #[wasmer(export)] sum: LazyInit>, } #[derive(WasmerEnv)] struct MyEnvWithEverything { num: u32, nums: Vec, #[wasmer(export)] memory: LazyInit, #[wasmer(export)] sum: LazyInit>, #[wasmer(export)] multiply: LazyInit, #[wasmer(export)] counter: LazyInit, #[wasmer(export)] functions: LazyInit, } #[derive(WasmerEnv)] struct MyEnvWithLifetime<'a> { name: &'a str, #[wasmer(export(name = "memory"))] memory: LazyInit, } #[derive(WasmerEnv)] struct MyUnitStruct; #[derive(WasmerEnv)] struct MyTupleStruct(u32); #[derive(WasmerEnv)] struct MyTupleStruct2(u32, u32); #[derive(WasmerEnv)] struct MyTupleStructWithAttribute(#[wasmer(export(name = "memory"))] LazyInit, u32); #[test] fn test_derive_with_attribute() { assert!(impls_wasmer_env::()); assert!(impls_wasmer_env::()); assert!(impls_wasmer_env::()); assert!(impls_wasmer_env::()); assert!(impls_wasmer_env::()); assert!(impls_wasmer_env::()); assert!(impls_wasmer_env::()); assert!(impls_wasmer_env::()); }