pagination

package
v0.0.0-rc.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 10, 2023 License: Apache-2.0 Imports: 8 Imported by: 0

Documentation

Overview

Package pagination provides primitives for implementing AIP pagination.

See: https://google.aip.dev/158 (Pagination).

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func DecodePageToken

func DecodePageToken(s string, v interface{}) error

DecodePageToken decodes an encoded page token into an arbitrary struct.

func EncodePageToken

func EncodePageToken(v interface{}) string

EncodePageToken encodes an arbitrary struct as a page token.

Types

type PageToken

type PageToken struct {
	// Offset of the page.
	Offset int64
	// RequestChecksum is the checksum of the request that generated the page token.
	RequestChecksum uint32
}

PageToken is a page token that uses an offset to delineate which page to fetch.

func ParsePageToken

func ParsePageToken(request Request) (_ PageToken, err error)

ParsePageToken parses an offset-based page token from the provided Request.

If the request does not have a page token, a page token with offset 0 will be returned.

func (PageToken) Next

func (p PageToken) Next(request Request) PageToken

Next returns the next page token for the provided Request.

func (PageToken) String

func (p PageToken) String() string

String returns a string representation of the page token.

type Request

type Request interface {
	proto.Message
	// GetPageToken returns the page token of the request.
	GetPageToken() string
	// GetPageSize returns the page size of the request.
	GetPageSize() int32
}

Request is an interface for paginated request messages.

See: https://google.aip.dev/158 (Pagination).

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL