corevm-engine 0.1.28

CoreVM engine that drives program execution either on the builder or CoreVM service side
Documentation
use corevm_host::{
	fs, AudioMode, AudioSampleFormat, CoreVmOutput, Outcome, OutputStream, VideoMode, VmOutput,
	VmState,
};
use jam_types::ServiceId;

pub fn default_corevm_output() -> CoreVmOutput {
	CoreVmOutput {
		vm_output: VmOutput {
			remaining_gas: 0,
			outcome: Outcome::Halt,
			num_memory_pages: 0,
			stream_len: [0; OutputStream::COUNT],
		},
		vm_state: VmState {
			video: Some(VideoMode::new(100, 100, 30, Default::default()).unwrap()),
			audio: Some(AudioMode::new(44100, 2, AudioSampleFormat::S16LE).unwrap()),
			..VmState::initial()
		},
		old_hash: Default::default(),
		new_hash: Default::default(),
		updated_pages: Default::default(),
		touched_imported_pages: Default::default(),
		exec_ref: fs::BlockRef { service_id: ServiceId::MAX, hash: fs::Hash::default() },
		outgoing_messages: Default::default(),
		processed_service_messages: Default::default(),
	}
}