1 // Copyright 2024 Google LLC 2 // 3 // Licensed under the Apache License, Version 2.0 (the "License"); 4 // you may not use this file except in compliance with the License. 5 // You may obtain a copy of the License at 6 // 7 // https://www.apache.org/licenses/LICENSE-2.0 8 // 9 // Unless required by applicable law or agreed to in writing, software 10 // distributed under the License is distributed on an "AS IS" BASIS, 11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 // See the License for the specific language governing permissions and 13 // limitations under the License. 14 15 // Code generated by protoc-gen-go_gapic. DO NOT EDIT. 16 17 package longrunning 18 19 import ( 20 longrunningpb "cloud.google.com/go/longrunning/autogen/longrunningpb" 21 "google.golang.org/api/iterator" 22 ) 23 24 // OperationIterator manages a stream of *longrunningpb.Operation. 25 type OperationIterator struct { 26 items []*longrunningpb.Operation 27 pageInfo *iterator.PageInfo 28 nextFunc func() error 29 30 // Response is the raw response for the current page. 31 // It must be cast to the RPC response type. 32 // Calling Next() or InternalFetch() updates this value. 33 Response interface{} 34 35 // InternalFetch is for use by the Google Cloud Libraries only. 36 // It is not part of the stable interface of this package. 37 // 38 // InternalFetch returns results from a single call to the underlying RPC. 39 // The number of results is no greater than pageSize. 40 // If there are no more results, nextPageToken is empty and err is nil. 41 InternalFetch func(pageSize int, pageToken string) (results []*longrunningpb.Operation, nextPageToken string, err error) 42 } 43 44 // PageInfo supports pagination. See the google.golang.org/api/iterator package for details. 45 func (it *OperationIterator) PageInfo() *iterator.PageInfo { 46 return it.pageInfo 47 } 48 49 // Next returns the next result. Its second return value is iterator.Done if there are no more 50 // results. Once Next returns Done, all subsequent calls will return Done. 51 func (it *OperationIterator) Next() (*longrunningpb.Operation, error) { 52 var item *longrunningpb.Operation 53 if err := it.nextFunc(); err != nil { 54 return item, err 55 } 56 item = it.items[0] 57 it.items = it.items[1:] 58 return item, nil 59 } 60 61 func (it *OperationIterator) bufLen() int { 62 return len(it.items) 63 } 64 65 func (it *OperationIterator) takeBuf() interface{} { 66 b := it.items 67 it.items = nil 68 return b 69 } 70