page: transport-neutral keyset pagination for Bob #6
Notifications
Due Date
No due date set.
Blocks
Reference: corestack/go#6
Reference in new issue
Block a user
Root-module package
go.auvem.com/corestack/page. Theconnectadapter, andgqlif it's ever built, sit on top of this package. Keep it free of GraphQL and protobuf types.Clean-room rewrite. Build from this spec. Don't read or port
go-toolkit/cursororgo-toolkit/dbx.Requirements
Page[T]holds the items, the start and end cursors, and has-next/has-previous.Done when
Kickoff prompt
Spec clarification (2026-10-27): getting cursor values from a row
The original spec didn't say how
pagegets the sort-column values from a row to build a cursor. This clarification is part of the spec, and it was sent to the in-flight delivery as a follow-up.Sort, for examplefunc(T) []any. It returns the sort-column values inSortorder.T.len(Sort)values. A mismatch is a programmer error and gets a clear message, never a silently bad cursor.time.Timeand UUIDs at minimum. Document the supported set, and reject other types with a typed error.Sortdefinition and the key function stay as two plain values the caller writes for each query. Codegen may generate them later (#11), so don't hide them behind an abstraction now.Done when (in addition to the existing criteria):
Sort;Exampleshows the key function.