Skip to main content

drive

Function drive 

Source
pub async fn drive<S, F>(
    pipeline: &mut EventPipeline,
    cache: &mut EvmCache,
    source: S,
    on_block: F,
)
where S: LogSource, F: FnMut(&BlockDigest),
Expand description

Drive pipeline over source, ingesting each block (reorging first when signalled) and invoking on_block after each ingest.

A thin async convenience over the synchronous core: it pulls a block from the Send source (the only .await), then synchronously reorg_to (if signalled) and ingest_logs, holding the !Send cache only across the synchronous section. on_block is where a caller wires FreshnessController::on_new_block and freshness classification of the digest’s touched slots.