pub trait Machine: Send + Sync {
// Required methods
fn name(&self) -> &str;
fn init(&mut self, opts: &MachineOpts) -> Result<(), Box<dyn Error>>;
fn reset(&mut self);
fn pause(&mut self);
fn resume(&mut self);
fn shutdown(&mut self);
fn boot(&mut self) -> Result<(), Box<dyn Error>>;
fn cpu_count(&self) -> usize;
fn ram_size(&self) -> u64;
}