Line data Source code
1 : // Copyright 2018 The LevelDB-Go and Pebble Authors. All rights reserved. Use 2 : // of this source code is governed by a BSD-style license that can be found in 3 : // the LICENSE file. 4 : 5 : package pebble 6 : 7 : import ( 8 : "context" 9 : 10 : "github.com/cockroachdb/pebble/internal/base" 11 : "github.com/cockroachdb/pebble/internal/keyspan" 12 : ) 13 : 14 : type errorIter struct { 15 : err error 16 : } 17 : 18 : // errorIter implements the base.InternalIterator interface. 19 : var _ internalIterator = (*errorIter)(nil) 20 : 21 1 : func (c *errorIter) SeekGE(key []byte, flags base.SeekGEFlags) *base.InternalKV { 22 1 : return nil 23 1 : } 24 : 25 1 : func (c *errorIter) SeekPrefixGE(prefix, key []byte, flags base.SeekGEFlags) *base.InternalKV { 26 1 : return c.SeekPrefixGEStrict(prefix, key, flags) 27 1 : } 28 : 29 : func (c *errorIter) SeekPrefixGEStrict( 30 : prefix, key []byte, flags base.SeekGEFlags, 31 1 : ) *base.InternalKV { 32 1 : return nil 33 1 : } 34 : 35 1 : func (c *errorIter) SeekLT(key []byte, flags base.SeekLTFlags) *base.InternalKV { 36 1 : return nil 37 1 : } 38 : 39 1 : func (c *errorIter) First() *base.InternalKV { 40 1 : return nil 41 1 : } 42 : 43 1 : func (c *errorIter) Last() *base.InternalKV { 44 1 : return nil 45 1 : } 46 : 47 1 : func (c *errorIter) Next() *base.InternalKV { 48 1 : return nil 49 1 : } 50 : 51 1 : func (c *errorIter) Prev() *base.InternalKV { 52 1 : return nil 53 1 : } 54 : 55 0 : func (c *errorIter) NextPrefix([]byte) *base.InternalKV { 56 0 : return nil 57 0 : } 58 : 59 1 : func (c *errorIter) Error() error { 60 1 : return c.err 61 1 : } 62 : 63 1 : func (c *errorIter) Close() error { 64 1 : return c.err 65 1 : } 66 : 67 0 : func (c *errorIter) String() string { 68 0 : return "error" 69 0 : } 70 : 71 1 : func (c *errorIter) SetBounds(lower, upper []byte) {} 72 : 73 0 : func (c *errorIter) SetContext(_ context.Context) {} 74 : 75 : type errorKeyspanIter struct { 76 : err error 77 : } 78 : 79 : // errorKeyspanIter implements the keyspan.FragmentIterator interface. 80 : var _ keyspan.FragmentIterator = (*errorKeyspanIter)(nil) 81 : 82 1 : func (i *errorKeyspanIter) SeekGE(key []byte) (*keyspan.Span, error) { return nil, i.err } 83 1 : func (i *errorKeyspanIter) SeekLT(key []byte) (*keyspan.Span, error) { return nil, i.err } 84 1 : func (i *errorKeyspanIter) First() (*keyspan.Span, error) { return nil, i.err } 85 1 : func (i *errorKeyspanIter) Last() (*keyspan.Span, error) { return nil, i.err } 86 0 : func (i *errorKeyspanIter) Next() (*keyspan.Span, error) { return nil, i.err } 87 0 : func (i *errorKeyspanIter) Prev() (*keyspan.Span, error) { return nil, i.err } 88 1 : func (i *errorKeyspanIter) Close() error { return i.err } 89 0 : func (*errorKeyspanIter) String() string { return "error" } 90 0 : func (*errorKeyspanIter) WrapChildren(wrap keyspan.WrapFn) {}