Structs
This direction marker is used for a [Signal] that is
an input with respect to a circuit. That means
that we do not expect to write to the input, but that
the value will be set by external components to the
circuit.
This direction marker is used for a [Signal] that
leaves a circuit as an output. That means we expect this
circuit to drive the signal using its internal logic.
It is an error in RustHDL to leave an output undriven.