Expand description
#611: the enumerable storage-operation registry.
The entry operations of the store kinds (Cell/Map/Set/Cache/
Log) are dispatched by the checker in crate::checker’s
check_store_*_op functions, where the operation names live in match
arms — authoritative for typing, but not enumerable. This module is the
enumerable view the LSP reads for hover on a store operation, mirroring
crate::kernel_methods’s relationship to the value-kernel dispatch.
The signatures are human-readable Bynk-surface display strings, generic in
the kind’s element/key/value type (K/V/T — the store field’s declared
kind grounds them at the hover site).
What the drift test pins, and what it does not.
store_op_registry_pins_dispatch drives every listed operation through the
real checker on a store field of the matching kind and asserts none is
rejected as unknown_op — so the table cannot list a phantom operation.
It does not bite the other way: an operation added to a check_store_*_op
arm later fails nothing here, and this table will silently under-list it
(hover then falls through — a missing hover, not a wrong one). Nor does it
check the signature strings, which are display-only and unread by the
checker; those are pinned by eye against the check_store_*_op arms.
crate::kernel_methods has the same shape and the same two limits.
Structs§
- StoreOp
- One storage operation: its name and a display signature.
Constants§
- CACHE_
STORE_ OPS store Cache[K, V](v0.87, ADR 0113) — the storageMap’s operation set, but its own table rather than an alias: every operation butremoveapplies TTL expiry, which reads the clock, so the handler must declaregiven Clock. That requirement is part of the operation’s contract, so it is rendered in the signature (as a handler’s owngivenclause is written, after the return type) — an alias toMAP_STORE_OPSwould silently drop it.- CELL_
STORE_ OPS store Cell[T](v0.98, ADR 0125) —updateis the only method-shaped operation; a cell is read by its bare name and written with:=.- LOG_
STORE_ OPS store Log[T](v0.95, ADR 0121) —appendis the one effectful write; the time-window roots are lazyQuery[T]builders. The general query vocabulary the roots feed into is the kernelQuerysurface, not aLogoperation, so it is not listed here.- MAP_
QUERY_ ACCESSORS - The
.entries/.keys/.valueslazy query accessors astore Map[K, V]field exposes (v0.158, ADR 0184) — fields, not method calls, so they’re dispatched incrate::checker::expressions::check_field_accessrather than acheck_store_*_opfunction, and are a separate table fromMAP_STORE_OPSthough they share a receiver. Never offered on a heldMap[K, Connection](bynk.held.query_accessor_on_held_map) — this static table doesn’t carry the value type, so callers gate that themselves. - MAP_
STORE_ OPS store Map[K, V](v0.82, ADR 0110) — entry-level and effectful.- SET_
STORE_ OPS store Set[T](v0.83) — entry-level and effectful. Set algebra (union/intersection/difference) is deferred.
Functions§
- ops_for
- The operations of the storage kind named
head(aStoreKind’s head identifier —"Map","Cell", …).Queueis in the storage-kind catalogue but has no dispatched operations yet, so it — like an unknown head — yields none.