MCPcopy Create free account
hub / github.com/encoder-run/operator / Next

Method Next

pkg/cache/redis/object.go:175–200  ·  view source on GitHub ↗

Next moves the iterator to the next object and returns it.

()

Source from the content-addressed store, hash-verified

173
174// Next moves the iterator to the next object and returns it.
175func (iter *EncodedObjectIter) Next() (plumbing.EncodedObject, error) {
176 if len(iter.keys) == 0 && iter.moreData {
177 iter.fetchNextBatch()
178 }
179 if len(iter.keys) > 0 {
180 key := iter.keys[0]
181 iter.keys = iter.keys[1:]
182
183 // Fetch the data corresponding to the key.
184 data, err := iter.client.Get(ctx, key).Bytes()
185 if err != nil {
186 return nil, err
187 }
188
189 obj := &plumbing.MemoryObject{}
190 obj.SetType(iter.t)
191 obj.SetSize(int64(len(data)))
192 if _, err := obj.Write(data); err != nil {
193 return nil, err
194 }
195
196 return obj, nil
197 }
198
199 return nil, io.EOF
200}
201
202// ForEach iterates over all objects and applies a callback function to each.
203func (iter *EncodedObjectIter) ForEach(cb func(plumbing.EncodedObject) error) error {

Callers 1

ForEachMethod · 0.95

Calls 1

fetchNextBatchMethod · 0.95

Tested by

no test coverage detected