RewriteRule::new enforces four distinct, documented conditions — parallel sides, revalidated well-formedness, non-empty lhs, mono lhs interface (prop/presentation/rewrite.rs:226-294 at v0.11.0) — but every rejection surfaces as CatgraphError::Presentation { message: String }. A consumer validating a rule set programmatically cannot match on which condition failed without parsing the message, and the same stringly channel serves optimize/replay entry rejections.
Ask: dedicated error variants (or a #[non_exhaustive] rule-rejection enum wrapped in CatgraphError) so rule-validation failures are attributable in code.
Filed promptly per the file-early posture; unscheduled, rank by value.
RewriteRule::newenforces four distinct, documented conditions — parallel sides, revalidated well-formedness, non-empty lhs, mono lhs interface (prop/presentation/rewrite.rs:226-294at v0.11.0) — but every rejection surfaces asCatgraphError::Presentation { message: String }. A consumer validating a rule set programmatically cannot match on which condition failed without parsing the message, and the same stringly channel servesoptimize/replayentry rejections.Ask: dedicated error variants (or a
#[non_exhaustive]rule-rejection enum wrapped inCatgraphError) so rule-validation failures are attributable in code.Filed promptly per the file-early posture; unscheduled, rank by value.