id_effect 0.3.0

Effect<A, E, R> (sync + async), capability DI, pipe — interpreter-style, no bundled executor
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
//! Ex 036 — invalid provider graphs yield [`CapabilityPlannerError`] and diagnostics.

use id_effect::{CapabilityDiagnostic, CapabilityPlannerError, PlannerNode, plan_topological};

fn main() {
  let bad = vec![PlannerNode::new("x", ["Missing"], "X")];
  let err = plan_topological(&bad).unwrap_err();
  assert!(
    matches!(err, CapabilityPlannerError::MissingProvider { .. }),
    "{err:?}"
  );
  let diags: Vec<CapabilityDiagnostic> = vec![err.to_diagnostic()];
  assert!(!diags.is_empty());
  println!("036_layer_graph_diagnostics ok");
}