run

Function run 

Source
pub async fn run<R, P, E, S, D>(
    uart: R,
    power: P,
    enable: E,
    sink: S,
    delay: D,
) -> !
where R: Read, P: Power, E: Enable, S: Sink, D: DelayNs,
Expand description

Drive one receiver forever.

Powers the receiver whenever enable says it is wanted, parses everything it emits, and hands each completed cycle to sink. Never returns.

Read errors are treated as the receiver having gone away: the pump powers it down, waits a moment, and brings it back. A UART that overruns because the executor was busy elsewhere is the common cause, and it costs one fix cycle rather than a permanently deaf receiver.