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