pub trait Machine {
type Register: Copy;
// Required methods
fn get_register(&self, reg: &str) -> Self::Register;
fn set_register(&mut self, reg: &str, value: Self::Register);
fn execute_instruction(&mut self) -> Option<usize>;
}