github.com/cockroachdb/pebble@v1.1.2/error_iter.go (about)

     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  	"github.com/cockroachdb/pebble/internal/base"
     9  	"github.com/cockroachdb/pebble/internal/keyspan"
    10  )
    11  
    12  type errorIter struct {
    13  	err error
    14  }
    15  
    16  // errorIter implements the base.InternalIterator interface.
    17  var _ internalIterator = (*errorIter)(nil)
    18  
    19  func newErrorIter(err error) *errorIter {
    20  	return &errorIter{err: err}
    21  }
    22  
    23  func (c *errorIter) SeekGE(key []byte, flags base.SeekGEFlags) (*InternalKey, base.LazyValue) {
    24  	return nil, base.LazyValue{}
    25  }
    26  
    27  func (c *errorIter) SeekPrefixGE(
    28  	prefix, key []byte, flags base.SeekGEFlags,
    29  ) (*base.InternalKey, base.LazyValue) {
    30  	return nil, base.LazyValue{}
    31  }
    32  
    33  func (c *errorIter) SeekLT(key []byte, flags base.SeekLTFlags) (*InternalKey, base.LazyValue) {
    34  	return nil, base.LazyValue{}
    35  }
    36  
    37  func (c *errorIter) First() (*InternalKey, base.LazyValue) {
    38  	return nil, base.LazyValue{}
    39  }
    40  
    41  func (c *errorIter) Last() (*InternalKey, base.LazyValue) {
    42  	return nil, base.LazyValue{}
    43  }
    44  
    45  func (c *errorIter) Next() (*InternalKey, base.LazyValue) {
    46  	return nil, base.LazyValue{}
    47  }
    48  
    49  func (c *errorIter) Prev() (*InternalKey, base.LazyValue) {
    50  	return nil, base.LazyValue{}
    51  }
    52  
    53  func (c *errorIter) NextPrefix([]byte) (*InternalKey, base.LazyValue) {
    54  	return nil, base.LazyValue{}
    55  }
    56  
    57  func (c *errorIter) Error() error {
    58  	return c.err
    59  }
    60  
    61  func (c *errorIter) Close() error {
    62  	return c.err
    63  }
    64  
    65  func (c *errorIter) String() string {
    66  	return "error"
    67  }
    68  
    69  func (c *errorIter) SetBounds(lower, upper []byte) {}
    70  
    71  type errorKeyspanIter struct {
    72  	err error
    73  }
    74  
    75  // errorKeyspanIter implements the keyspan.FragmentIterator interface.
    76  var _ keyspan.FragmentIterator = (*errorKeyspanIter)(nil)
    77  
    78  func newErrorKeyspanIter(err error) *errorKeyspanIter {
    79  	return &errorKeyspanIter{err: err}
    80  }
    81  
    82  func (*errorKeyspanIter) SeekGE(key []byte) *keyspan.Span { return nil }
    83  func (*errorKeyspanIter) SeekLT(key []byte) *keyspan.Span { return nil }
    84  func (*errorKeyspanIter) First() *keyspan.Span            { return nil }
    85  func (*errorKeyspanIter) Last() *keyspan.Span             { return nil }
    86  func (*errorKeyspanIter) Next() *keyspan.Span             { return nil }
    87  func (*errorKeyspanIter) Prev() *keyspan.Span             { return nil }
    88  func (i *errorKeyspanIter) Error() error                  { return i.err }
    89  func (i *errorKeyspanIter) Close() error                  { return i.err }
    90  func (*errorKeyspanIter) String() string                  { return "error" }