pub enum RowBinding {
Bound(OperationResult),
Deferred {
target: ReferenceTarget,
hops: u32,
},
Rows {
rows: Vec<Arc<RowInstance>>,
row_type: Arc<LemmaType>,
hops: u32,
},
Instance(Arc<RowInstance>),
}Expand description
A field of a RowInstance.
hops on a reference or rows binding names the context it was written in: 0 is the
instance that holds the row (the row key’s owner), 1 the one above it, and so on.
A consumer writing -> with j.x: v on uses i writes x of i’s nested j row
one hop above the instance (i) that holds j.
Variants§
Bound(OperationResult)
Deferred
Sealed spec-written reference. Not yet forced: resolution happens when a read of
the row touches the field, so lists holding rule-bound rows can be read
(-> count) without evaluating rules the read never reaches.
Rows
Rows of a list field written with the row (-> with ada copying a uses
instance whose list field is bound). Read as a list whose rows are owned by
the context hops names.
Instance(Arc<RowInstance>)
A nested uses slot whose fields a consumer wrote (-> with j.x: v): the nested
import row with those fields bound. Read as that row owned by the holding instance.