cp_ast_core/operation/
error.rs1use crate::constraint::{ConstraintId, ExpectedType};
2use crate::structure::NodeId;
3
4#[derive(Debug, Clone, PartialEq)]
6pub struct ViolationDetail {
7 pub constraint_id: ConstraintId,
9 pub description: String,
11 pub suggestion: Option<String>,
13}
14
15#[derive(Debug, Clone, PartialEq)]
17pub enum OperationError {
18 TypeMismatch {
20 expected: ExpectedType,
21 actual: String,
22 context: String,
23 },
24 NodeNotFound { node: NodeId },
26 SlotOccupied {
28 node: NodeId,
29 current_occupant: String,
30 },
31 ConstraintViolation {
33 violated_constraints: Vec<ViolationDetail>,
34 },
35 InvalidOperation { action: String, reason: String },
37}