melodium_engine/world/
track.rs1use futures::stream::FuturesUnordered;
2use melodium_common::executive::{ResultStatus, TrackFuture, TrackId};
3
4#[allow(dead_code)]
6#[derive(Debug, Clone)]
7pub struct InfoTrack {
8 pub id: TrackId,
9 pub parent_id: Option<TrackId>,
10 pub ancestry_level: u64,
11 pub results: Option<TrackResult>,
12}
13
14impl InfoTrack {
15 pub fn new(id: TrackId, parent_id: Option<TrackId>, ancestry_level: u64) -> Self {
16 Self {
17 id,
18 parent_id,
19 ancestry_level,
20 results: None,
21 }
22 }
23}
24
25#[allow(dead_code)]
27pub struct ExecutionTrack {
28 pub id: TrackId,
29 pub ancestry_level: u64,
30 pub future: FuturesUnordered<TrackFuture>,
31}
32
33impl ExecutionTrack {
34 pub fn new(id: TrackId, ancestry_level: u64, future: FuturesUnordered<TrackFuture>) -> Self {
35 Self {
36 id,
37 ancestry_level,
38 future,
39 }
40 }
41}
42
43#[derive(Debug, Clone)]
44pub enum TrackResult {
45 AllOk(TrackId),
46 #[allow(dead_code)]
47 NotAllOk(TrackId, Vec<ResultStatus>),
48}