like if you have:

```rust
fn demo<T>(bus: &mut Bus<T>) {
    bus.pin.set_low(); // won't work!
}
```

you'd instead need:

```rust
fn demo<T: OutputPin>(bus: &mut Bus<T>) {
    bus.pin.set_low(); // will work!
}
```