use futures::stream::FuturesUnordered;
use melodium_common::executive::{ResultStatus, TrackFuture, TrackId};
#[allow(dead_code)]
#[derive(Debug, Clone)]
pub struct InfoTrack {
pub id: TrackId,
pub parent_id: Option<TrackId>,
pub ancestry_level: u64,
pub results: Option<TrackResult>,
}
impl InfoTrack {
pub fn new(id: TrackId, parent_id: Option<TrackId>, ancestry_level: u64) -> Self {
Self {
id,
parent_id,
ancestry_level,
results: None,
}
}
}
#[allow(dead_code)]
pub struct ExecutionTrack {
pub id: TrackId,
pub ancestry_level: u64,
pub future: FuturesUnordered<TrackFuture>,
}
impl ExecutionTrack {
pub fn new(id: TrackId, ancestry_level: u64, future: FuturesUnordered<TrackFuture>) -> Self {
Self {
id,
ancestry_level,
future,
}
}
}
#[derive(Debug, Clone)]
pub enum TrackResult {
AllOk(TrackId),
#[allow(dead_code)]
NotAllOk(TrackId, Vec<ResultStatus>),
}