use macro_machines::MachineDotfile;
mod macro_def;
#[derive(Clone, Debug, Eq, PartialEq)]
pub struct Def {}
pub trait Program : MachineDotfile {
fn run (&mut self);
fn dotfile() -> String where Self : Sized {
<Self as MachineDotfile>::dotfile()
}
}
#[doc(hidden)]
pub fn log_program_run (program : &str, mode : &str) {
log::debug!(program, mode; "running program");
}
#[doc(hidden)]
pub fn log_program_transition (
program : &str, mode : &str, transition : &str, source : &str, target : &str
) {
log::debug!(program, mode, transition, source, target;
"program mode transition");
}
#[doc(hidden)]
pub fn log_program_end (program : &str) {
log::debug!(program; "program ended");
}