1use 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}