pub trait StateMachineChild {
// Required method
fn id(&self) -> Arc<SourceID>;
// Provided methods
fn init(
&self,
driver: &Weak<Driver>,
) -> Result<Box<dyn StateMachineWrapper>, Error> { ... }
fn apply_children(
&self,
_: &mut dyn FnMut(&dyn StateMachineChild) -> Result<()>,
) -> Result<()> { ... }
}