id_effect 0.1.1

Effect<A, E, R> (sync + async), context/layers, pipe — interpreter-style, no bundled executor
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
//! Ex 036 — Invalid graphs yield `LayerPlannerError` and diagnostics.
use id_effect::{LayerDiagnostic, LayerPlannerError, layer_graph};

fn main() {
  let bad = layer_graph! {
    x : [Missing] => [X];
  };
  let err = bad.plan_topological().unwrap_err();
  assert!(
    matches!(err, LayerPlannerError::MissingProvider { .. }),
    "{err:?}"
  );
  let diags: Vec<LayerDiagnostic> = bad.diagnostics();
  assert!(!diags.is_empty());
  println!("036_layer_graph_diagnostics ok");
}