BenPh[m]: > <@random-task:matrix.org> so ideally, that would be: > > ```rust > use embedded_hal::counters::{Clock, Posn} > struct Esp3PWM<'d, PwmOp, PinA, PinB, PinC, P, C> { > // mcpwm_periph: MCPWM<'d, PwmOp>, > motor_triplet: Triplet< > PwmPin<'d, PinA, PwmOp, 0, true>, > PwmPin<'d, PinB, PwmOp, 1, true>, > PwmPin<'d, PinC, PwmOp, 2, true>, > >, > pulse_counter: P, > time_source: C, > } > > ``` > > and i would have "where P: Posn" and "where C: Clock" impls sprinkled throughout. That's fair, but still wouldn't require a counter trait