assemble_freight/
core.rs

1//! Core parts of freight
2
3use assemble_core::error::PayloadError;
4use assemble_core::identifier::TaskId;
5
6use assemble_core::project::error::ProjectError;
7
8mod task_resolver;
9pub use task_resolver::*;
10
11mod execution_plan;
12
13pub use execution_plan::*;
14
15#[derive(Debug, thiserror::Error)]
16pub enum ConstructionError {
17    #[error("No task named {0} found in project")]
18    IdentifierNotFound(TaskId),
19    #[error("Cycle found in between tasks {}", cycle.iter().map(ToString::to_string).collect::<Vec<_>>().join(","))]
20    CycleFound { cycle: Vec<TaskId> },
21    #[error(transparent)]
22    ProjectError(#[from] ProjectError),
23}