Involved Source Files
Package iterator provides support for standard Google API iterators.
See https://github.com/GoogleCloudPlatform/gcloud-golang/wiki/Iterator-Guidelines.
Package-Level Type Names (total 3, all are exported)
PageInfo contains information about an iterator's paging state.
MaxSize is the maximum number of items returned by a call to the API.
Set MaxSize as a hint to optimize the buffering behavior of the iterator.
If zero, the page size is determined by the underlying service.
Use Pager to retrieve a page of a specific, exact size.
Token is the token used to retrieve the next page of items from the
API. You may set Token immediately after creating an iterator to
begin iteration at a particular point. If Token is the empty string,
the iterator will begin with the first eligible item.
The result of setting Token after the first call to Next is undefined.
After the underlying API method is called to retrieve a page of items,
Token is set to the next-page token in the response.
If true, no more calls to fetch should be made. Set to true when fetch
returns an empty page token. The iterator is Done when this is true AND
the buffer is empty.
Function that returns the number of currently buffered items.
The error state of the iterator. Manipulated by PageInfo.next and Pager.
This is a latch: it starts as nil, and once set should never change.
Function that fetches a page from the underlying service. It should pass
the pageSize and pageToken arguments to the service, fill the buffer
with the results from the call, and return the next-page token returned
by the service. The function must not remove any existing items from the
buffer. If the underlying RPC takes an int32 page size, pageSize should
be silently truncated.
Set to true on first call to PageInfo.next or Pager.NextPage. Used to check
for calls to both Next and NextPage with the same iterator.
Set to true on first call to PageInfo.next or Pager.NextPage. Used to check
for calls to both Next and NextPage with the same iterator.
Function that returns the buffer, after setting the buffer variable to nil.
Remaining returns the number of items available before the iterator makes another API call.
Call the service to fill the buffer, using size and pi.Token. Set pi.Token to the
next-page token returned by the call.
If fill returns a non-nil error, the buffer will be empty.
next provides support for an iterator's Next function. An iterator's Next
should return the error returned by next if non-nil; else it can assume
there is at least one item in its buffer, and it should return that item and
remove it from the buffer.
func Pageable.PageInfo() *PageInfo
func cloud.google.com/go/cloudtasks/apiv2.(*QueueIterator).PageInfo() *PageInfo
func cloud.google.com/go/cloudtasks/apiv2.(*TaskIterator).PageInfo() *PageInfo
func cloud.google.com/go/container/apiv1.(*UsableSubnetworkIterator).PageInfo() *PageInfo
func cloud.google.com/go/errorreporting/apiv1beta1.(*ErrorEventIterator).PageInfo() *PageInfo
func cloud.google.com/go/errorreporting/apiv1beta1.(*ErrorGroupStatsIterator).PageInfo() *PageInfo
func cloud.google.com/go/logging/apiv2.(*LogEntryIterator).PageInfo() *PageInfo
func cloud.google.com/go/logging/apiv2.(*LogExclusionIterator).PageInfo() *PageInfo
func cloud.google.com/go/logging/apiv2.(*LogMetricIterator).PageInfo() *PageInfo
func cloud.google.com/go/logging/apiv2.(*LogSinkIterator).PageInfo() *PageInfo
func cloud.google.com/go/logging/apiv2.(*MonitoredResourceDescriptorIterator).PageInfo() *PageInfo
func cloud.google.com/go/logging/apiv2.(*StringIterator).PageInfo() *PageInfo
func cloud.google.com/go/monitoring/apiv3.(*AlertPolicyIterator).PageInfo() *PageInfo
func cloud.google.com/go/monitoring/apiv3.(*GroupIterator).PageInfo() *PageInfo
func cloud.google.com/go/monitoring/apiv3.(*MetricDescriptorIterator).PageInfo() *PageInfo
func cloud.google.com/go/monitoring/apiv3.(*MonitoredResourceDescriptorIterator).PageInfo() *PageInfo
func cloud.google.com/go/monitoring/apiv3.(*MonitoredResourceIterator).PageInfo() *PageInfo
func cloud.google.com/go/monitoring/apiv3.(*NotificationChannelDescriptorIterator).PageInfo() *PageInfo
func cloud.google.com/go/monitoring/apiv3.(*NotificationChannelIterator).PageInfo() *PageInfo
func cloud.google.com/go/monitoring/apiv3.(*ServiceIterator).PageInfo() *PageInfo
func cloud.google.com/go/monitoring/apiv3.(*ServiceLevelObjectiveIterator).PageInfo() *PageInfo
func cloud.google.com/go/monitoring/apiv3.(*TimeSeriesIterator).PageInfo() *PageInfo
func cloud.google.com/go/monitoring/apiv3.(*UptimeCheckConfigIterator).PageInfo() *PageInfo
func cloud.google.com/go/monitoring/apiv3.(*UptimeCheckIpIterator).PageInfo() *PageInfo
func cloud.google.com/go/secretmanager/apiv1.(*SecretIterator).PageInfo() *PageInfo
func cloud.google.com/go/secretmanager/apiv1.(*SecretVersionIterator).PageInfo() *PageInfo
func cloud.google.com/go/storage.(*BucketIterator).PageInfo() *PageInfo
func cloud.google.com/go/storage.(*HMACKeysIterator).PageInfo() *PageInfo
func cloud.google.com/go/storage.(*ObjectIterator).PageInfo() *PageInfo
func newPageInfo(fetch func(int, string) (string, error), bufLen func() int, takeBuf func() interface{}) (pi *PageInfo, next func() error)
Pager supports retrieving iterator items a page at a time.
pageInfo*PageInfopageSizeint
NextPage retrieves a sequence of items from the iterator and appends them
to slicep, which must be a pointer to a slice of the iterator's item type.
Exactly p.pageSize items will be appended, unless fewer remain.
The first return value is the page token to use for the next page of items.
If empty, there are no more pages. Aside from checking for the end of the
iteration, the returned page token is only needed if the iteration is to be
resumed a later time, in another context (possibly another process).
The second return value is non-nil if an error occurred. It will never be
the special iterator sentinel value Done. To recognize the end of the
iteration, compare nextPageToken to the empty string.
It is possible for NextPage to return a single zero-length page along with
an empty page token when there are no more items in the iteration.
func NewPager(iter Pageable, pageSize int, pageToken string) *Pager
Package-Level Functions (total 2, in which 1 are exported)
NewPager returns a pager that uses iter. Calls to its NextPage method will
obtain exactly pageSize items, unless fewer remain. The pageToken argument
indicates where to start the iteration. Pass the empty string to start at
the beginning, or pass a token retrieved from a call to Pager.NextPage.
If you use an iterator with a Pager, you must not call Next on the iterator.
newPageInfo creates and returns a PageInfo and a next func. If an iterator can
support paging, its iterator-creating method should call this. Each time the
iterator's Next is called, it should call the returned next fn to determine
whether a next item exists, and if so it should pop an item from the buffer.
The fetch, bufLen and takeBuf arguments provide access to the iterator's
internal slice of buffered items. They behave as described in PageInfo, above.
The return value is the PageInfo.next method bound to the returned PageInfo value.
(Returning it avoids exporting PageInfo.next.)
Note: the returned PageInfo and next fn do not remove items from the buffer.
It is up to the iterator using these to remove items from the buffer:
typically by performing a pop in its Next. If items are not removed from the
buffer, memory may grow unbounded.
Package-Level Variables (total 3, in which 2 are exported)
Done is returned by an iterator's Next method when the iteration is
complete; when there are no more items to return.
NewPageInfo exposes internals for iterator implementations.
It is not a stable interface.
We don't support mixed calls to Next and NextPage because they play
with the paging state in incompatible ways.
The pages are generated with Goldsv0.3.2-preview. (GOOS=darwin GOARCH=amd64)
Golds is a Go 101 project developed by Tapir Liu.
PR and bug reports are welcome and can be submitted to the issue list.
Please follow @Go100and1 (reachable from the left QR code) to get the latest news of Golds.