use async_trait;
use crateMetaBackend;
use crateSchedulerError;
use crateOperonService;
use crateOperonStorage;
// TODO: Temporary hard-coded value, may be added to the `OperonOptions` in the future.
/// How many `(job, resolution)` chains a rebuilder keeps in flight on the rebuild transaction.
pub const REBUILD_CONCURRENCY: usize = 64;
/// One task's replay of a previous run, over the data that run left in the entity storage.
///
/// [`TaskSpec::prepare_rebuild`](crate::scheduler::TaskSpec::prepare_rebuild) reads the entities
/// the task already produced and hands back a rebuilder over them, which then writes the metadata
/// those entities imply.