Skip to main content

Module error

Module error 

Source
Expand description

The error taxonomy.

This is public API, not an implementation detail. Two consumers depend on its exact shape:

  • recover (US-1408) dispatches on the error class, so failure is a control-flow value rather than a panic — a budget overrun degrades to a cheaper model instead of ending the run.
  • The Python bindings (US-1206) mirror this hierarchy so except GrantViolation: works.

Both mean the taxonomy is expensive to change later, which is why it is settled at M0 rather than grown organically.

§Why some fields are boxed

BoundGraphError is the error half of every Result in the workspace, so its size is paid on the success path too — a fat error type makes every function that can fail more expensive to return from. Grant payloads are the largest members by some distance, so the two variants carrying them box those fields. Use the constructors (BoundGraphError::grant_violation, BoundGraphError::disjointness_unproven) and the boxing stays invisible.

Enums§

BoundGraphError
Anything that can go wrong inside the governed span.

Type Aliases§

Result
The result type used throughout BoundGraph.