[][src]Trait stack_vm::FromByteCode

pub trait FromByteCode {
    fn from_byte_code(_: &mut dyn Read) -> Self;
}

Convert from byte code to a type.

This trait represents the ability to load your Operands from bytecode. stack-vm uses the rmp crate to load bytecode from a MsgPack encoded binary.

See the rmp docs to find out which functions you can use to write out your types.

Required methods

fn from_byte_code(_: &mut dyn Read) -> Self

Convert from MsgPack to your type.

This function takes a mutable reference of type Read and returns your operand type.

Example


#[derive(PartialEq, Debug)]
struct Operand(i64);

impl FromByteCode for Operand {
    fn from_byte_code(mut buf: &mut Read) -> Operand {
        let value = rmp::decode::read_int(&mut buf).unwrap();
        Operand(value)
    }
}
let bytecode = [0xd];
assert_eq!(Operand(13), Operand::from_byte_code(&mut &bytecode[..]));
Loading content...

Implementors

impl<T: FromByteCode + Debug> FromByteCode for Code<T>[src]

Loading content...