pub enum GateError {
Apply(ApplyError),
TypeError {
op_id: OpId,
errors: Vec<TypeError>,
},
}Variants§
Apply(ApplyError)
The operation’s parent or merge structure is wrong.
Pass-through from ApplyError; same shape so callers
already handling stale-parent / unknown-merge-parent on the
raw apply path can keep their existing match arms.
TypeError
The candidate program — i.e. the state that would exist after applying the op — doesn’t typecheck. The op is not persisted; the branch head is unchanged.
op_id is the would-be op_id (computed before the apply
path persisted anything). Lets callers correlate the
rejection with the op they submitted, even though no
<root>/ops/<op_id>.json file exists.
errors is the structured envelope lex check already
emits. Effect violations show up here as a TypeError
variant; the gate doesn’t model them as a separate kind
because the type checker doesn’t either.
Trait Implementations§
Source§impl Error for GateError
impl Error for GateError
Source§fn source(&self) -> Option<&(dyn Error + 'static)>
fn source(&self) -> Option<&(dyn Error + 'static)>
1.0.0 · Source§fn description(&self) -> &str
fn description(&self) -> &str
use the Display impl or to_string()