Collection.ResolveResult
luastra/collectionCollection.ResolveResult is a discriminated union covering successful output and bounded failure. Branching on success narrows the value to the correct exported record and makes error handling explicit.
Before you use it
Add luastra/collection to this module's dependencies in luastra.json, then import it with require("luastra/collection"). Choose a stable bounded key for every item and explicit maxItems, maxPages, and maxPageItems values appropriate to the screen. Provider cursors remain application state and must never be used as UI node IDs.
How it fits
Collection types describe pages, directions, tickets, bounded snapshots, results, and the state controller contract.
When to use it
Use Collection.ResolveResult at the boundary where untrusted or versioned input is decoded. Branch on result.success before reading value or error so both outcomes remain explicit and type-safe.
Fields or definition
| Parameter | Type / values | Description |
|---|---|---|
| accepted | boolean | Checked accepted field of Collection.ResolveResult; its exact admitted type is boolean. |
| error | string? | Bounded failure information, or nil on the successful branch. |
What happens next
A checked page-window annotation for cursor-based ordered data.
Failures and fixes
Duplicate or malformed keys, oversized pages, repeated cursors, stale tickets, or invalid bounds are rejected without silently corrupting order. Edge failures remain separate so the existing window stays usable while the user retries only the failed direction.
Availability
Public-source alpha collection API in 0.5.0-alpha; fetching and viewport triggers remain explicit application and host concerns.
Exact declaration
export type ResolveResult = {
accepted: boolean,
error: string?,
}