pub trait Logic { // Required method fn update(&mut self); // Provided methods fn connect(&mut self) { ... } fn hdl(&self) -> Verilog { ... } fn timing(&self) -> Vec<TimingInfo> { ... } }