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§
- Bound
Graph Error - Anything that can go wrong inside the governed span.
Type Aliases§
- Result
- The result type used throughout BoundGraph.