Source File
iterator.go
Belonging Package
google.golang.org/api/iterator
package iterator
import (
)
takeBuf func() interface{}
var NewPageInfo = newPageInfo
func ( *PageInfo) () error {
.nextCalled = true
return .err
}
if .nextPageCalled {
.err = errMixed
return .err
PageInfo() *PageInfo
}
func ( *Pager) ( interface{}) ( string, error) {
.pageInfo.nextPageCalled = true
if .pageInfo.err != nil {
return "", .pageInfo.err
}
if .pageInfo.nextCalled {
.pageInfo.err = errMixed
return "", .pageInfo.err
}
if .pageInfo.bufLen() > 0 {
return "", errors.New("must call NextPage with an empty buffer")
:= reflect.PtrTo(reflect.ValueOf(.pageInfo.takeBuf()).Type())
if == nil {
return "", errors.New("nil passed to Pager.NextPage")
}
:= reflect.ValueOf()
if .Type() != {
return "", fmt.Errorf("slicep should be of type %s, got %T", , )
}
for .pageInfo.bufLen() < .pageSize {
if := .pageInfo.fill(.pageSize - .pageInfo.bufLen()); != nil {
.pageInfo.err =
return "", .pageInfo.err
}
if .pageInfo.Token == "" {
break
}
}
:= .Elem()
.Set(reflect.AppendSlice(, reflect.ValueOf(.pageInfo.takeBuf())))
return .pageInfo.Token, nil
![]() |
The pages are generated with Golds v0.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. |