github.com/cockroachdb/pebble@v0.0.0-20231214172447-ab4952c5f87b/internal/base/error.go (about)

     1  // Copyright 2011 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 base
     6  
     7  import "github.com/cockroachdb/errors"
     8  
     9  // ErrNotFound means that a get or delete call did not find the requested key.
    10  var ErrNotFound = errors.New("pebble: not found")
    11  
    12  // ErrCorruption is a marker to indicate that data in a file (WAL, MANIFEST,
    13  // sstable) isn't in the expected format.
    14  var ErrCorruption = errors.New("pebble: corruption")
    15  
    16  // MarkCorruptionError marks given error as a corruption error.
    17  func MarkCorruptionError(err error) error {
    18  	if errors.Is(err, ErrCorruption) {
    19  		return err
    20  	}
    21  	return errors.Mark(err, ErrCorruption)
    22  }
    23  
    24  // CorruptionErrorf formats according to a format specifier and returns
    25  // the string as an error value that is marked as a corruption error.
    26  func CorruptionErrorf(format string, args ...interface{}) error {
    27  	return errors.Mark(errors.Newf(format, args...), ErrCorruption)
    28  }