revm_rwasm_bytecode/
rwasm.rs1use crate::BytecodeDecodeError;
2use primitives::Bytes;
3use rwasm::RwasmModule;
4
5pub static RWASM_MAGIC_BYTES: Bytes = primitives::bytes!("ef52");
7pub static WASM_MAGIC_BYTES: Bytes = primitives::bytes!("0061736d");
9
10#[derive(Clone, Debug, PartialEq, Eq, Hash, Ord, PartialOrd)]
12#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
13pub struct RwasmBytecode {
14 pub module: RwasmModule,
16 pub raw: Bytes,
18}
19
20impl RwasmBytecode {
21 pub fn new(raw: Bytes) -> Result<Self, BytecodeDecodeError> {
23 let (module, _) = RwasmModule::new(raw.as_ref());
24 Ok(Self { module, raw })
25 }
26
27 #[inline]
29 pub fn raw(&self) -> &Bytes {
30 &self.raw
31 }
32}