1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
use core::fmt::Debug;

use crate::core::reader::{WasmReadable, WasmReader};
use crate::execution::assert_validated::UnwrapValidatedExt;

#[derive(Debug)]
pub struct MemArg {
    pub offset: u32,
    #[allow(dead_code)]
    pub align: u32,
}

impl WasmReadable for MemArg {
    fn read(wasm: &mut WasmReader) -> crate::Result<Self> {
        let offset = wasm.read_var_u32()?;
        #[allow(dead_code)]
        let align = wasm.read_var_u32()?;
        Ok(Self { offset, align })
    }

    fn read_unvalidated(wasm: &mut WasmReader) -> Self {
        let offset = wasm.read_var_u32().unwrap_validated();
        let align = wasm.read_var_u32().unwrap_validated();
        Self { offset, align }
    }
}