pub struct Entry {
pub row: OwnedRow,
pub rc: u32,
pub created: TxnGen,
pub id: Option<Box<EntryId>>,
pub rels: Box<[EntryList]>,
}Expand description
One materialized node in the view tree (ports MetaEntry). Arc-shared so
unchanged subtrees keep pointer identity across an immutable [apply_change].
Fields§
§row: OwnedRowThe row’s columns, index-addressed (never a HashMap<String,_>).
rc: u32How many query paths reach this row within its containing relationship.
Add increments, remove decrements; physical removal at rc == 0.
created: TxnGen“Created/cloned this transaction” stamp (09 §4.8-A). owns(e) ⇔ e.created == dirty.gen. Bumped-stale on every flush.
id: Option<Box<EntryId>>Stable identity (present iff with_ids). Mirrors idSymbol. Boxed: the
field is dead for ArrayView (with_ids=false everywhere today), so it
costs 8 bytes in-line instead of 24; a future SolidView pays one alloc
per entry for it, in the same breath as its id string allocation.
rels: Box<[EntryList]>Child relationships, index-addressed by RelId (slot = position),
in the same order as Schema::relationships. Each slot is a sorted list:
the view is plural at every level (singular .one() is applied at the
presentation boundary, not in the materialized tree).