#[non_exhaustive]pub struct ListKeyViolation {
pub list_offset: u32,
pub row: usize,
pub path: String,
pub reason: ListKeyReason,
}Expand description
A keyed list row whose identity could not be written (FORMA-181, DR-8).
The walker reads each row’s value at the list’s key path (FMIR section
0x0006) and writes its canonical text as the row root’s
data-forma-key. The whole render is refused, as RENDER-503, when the
value is not a row identity, when two rows of one list execution share a
key, or when the row did not render exactly one root element to carry it.
Boxed in IrError so the path and ordinals do not enlarge every common
error. #[non_exhaustive]: a field can be added without a breaking
change; build one with ListKeyViolation::new.
Fields (Non-exhaustive)§
This struct is marked as non-exhaustive
Struct { .. } syntax; cannot be matched against without a wildcard ..; and struct update syntax will not work.list_offset: u32Byte offset of the LIST opcode in the bytecode, as section 0x0006
names it.
row: usizeZero-based position of the refused row in the array this execution of the list iterated.
path: StringThe key path, dotted (id, user.id); a segment holding a dot or a
bracket, or an empty one, is quoted in brackets (["user.id"]).
reason: ListKeyReasonWhat was wrong with the row’s key.