sbpf-vm 0.1.9

Lightweight VM for SBPF (Solana BPF) bytecode
Documentation
use crate::{compute::ComputeMeter, errors::SbpfVmResult, memory::Memory};

/// Trait for handling syscalls
pub trait SyscallHandler {
    fn handle(
        &mut self,
        name: &str,
        registers: [u64; 5],
        memory: &mut Memory,
        compute: ComputeMeter,
    ) -> SbpfVmResult<u64>;
}

/// Mock syscall handler for testing
#[derive(Debug, Default)]
pub struct MockSyscallHandler {
    pub logs: Vec<String>,
}

impl SyscallHandler for MockSyscallHandler {
    fn handle(
        &mut self,
        name: &str,
        _registers: [u64; 5],
        _memory: &mut Memory,
        _compute: ComputeMeter,
    ) -> SbpfVmResult<u64> {
        self.logs.push(format!("syscall: {}", name));
        Ok(0)
    }
}