← Bounded paged collections

Collection.ResolveResult

luastra/collection

Collection.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

ParameterType / valuesDescription
acceptedbooleanChecked accepted field of Collection.ResolveResult; its exact admitted type is boolean.
errorstring?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?,
}

Complete inventory

View all pages in Bounded paged collections
← Previous: Collection.SnapshotNext: Collection.State →