pub enum PlanIssue {
ContradictoryFacts {
between: ContradictionPair,
},
UnknownKind {
named: Identity<ProjectionKind>,
},
ProfileUnsupported {
profile: Profile,
},
BoundExceeded {
axis: BoundAxis,
bound: u64,
observed: u64,
},
MembershipIncomplete {
absent: Identity<GeneratedUnit>,
},
OrphanGeneratedNode {
node: Identity<GeneratedUnit>,
},
MembershipDoubled {
role_slot: u16,
observed: u32,
},
TrailDiscontinuous {
at: u32,
},
CauseSetUnwatchable {
named: u32,
watchable: u32,
},
MembershipForeign {
seat: &'static str,
},
AddressInert {
seat: &'static str,
},
}Expand description
One way planning refuses.
No issue is payload-free: an issue names what it observed, because a bare row makes the reader guess. Several are reachable only where a plan arrives decoded rather than built through the roads here, since the typed roads cannot express an unimplemented kind, an orphaned unit, or an incomplete membership.
Variants§
ContradictoryFacts
Two facts that decided this plan disagree.
Fields
between: ContradictionPairThe disagreeing pair.
UnknownKind
The plan names a kind this compiler was not handed an implementation of.
Fields
named: Identity<ProjectionKind>The named kind’s identity.
ProfileUnsupported
The profile the request selected offers no such projection.
BoundExceeded
A declared magnitude was exceeded.
Fields
MembershipIncomplete
A declared sibling output is absent from the membership.
Fields
absent: Identity<GeneratedUnit>The absent unit.
OrphanGeneratedNode
A generated unit arrived with no origin.
Fields
node: Identity<GeneratedUnit>The orphaned unit.
MembershipDoubled
Two planned members stand under one seat.
Closure matches a rendered unit to a planned member BY SEAT, so a seat carrying two members leaves that match electing one of them and proving nothing about the other.
Fields
TrailDiscontinuous
An origin trail’s edges do not join: the edge at this position starts at a node the edge before it did not produce.
A walk with a gap in it is not a shorter walk — it is two walks presented as one, and whichever end a reader trusts, the other end is provenance nobody established.
Fields
CauseSetUnwatchable
A narrow one-trigger reading was asked of an account that names more than one independent cause.
A watch covering the first cause and no other reads exactly like a complete one, so the reading refuses rather than issuing a claim about the causes it dropped.
Fields
MembershipForeign
A planned member stands under a seat the kind’s roster does not declare.
The roster is the denominator of every downstream walk — encoding, proof, reconstruction, delivery. A member outside it would render, vanish from all of them, and leave the closure proving a set it never examined whole, so the member refuses at admission instead.
AddressInert
An address was stated for a seat no publication act consumes.
An address is a claim about where an artifact will be written, and only a seat delivering to a publication artifact ever writes to one. Stated anywhere else — a declaration site, a test carrier, or a seat outside the roster entirely — the address would still enter every identity while no act ever consumed it: a writable claim with no product act, which is exactly the shape this plan refuses to hold.
Implementations§
Source§impl PlanIssue
impl PlanIssue
Sourcepub fn canonical_bytes(&self) -> Vec<u8> ⓘ
pub fn canonical_bytes(&self) -> Vec<u8> ⓘ
This issue’s canonical bytes on their own, for the related identity a diagnostic derives over it.
Sourcepub fn encode_into(&self, into: &mut Vec<u8>)
pub fn encode_into(&self, into: &mut Vec<u8>)
Appends this issue’s canonical bytes: the row’s position in the declared roster, then the typed material that row carries, framed.
Exhaustive over the roster on purpose: an issue added to PlanIssue stops compiling HERE until somebody says what of it a preimage commits to, so no issue can be admitted and left out of every identity derived over a refusal that carries it.