summaryrefslogtreecommitdiff
path: root/vendor/git.iim.gay/grufwub/go-store/storage/errors.go
blob: 0165935966166fa6a45d6a801fdd15c0b196f00c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
package storage

import (
	"fmt"
	"syscall"
)

// errorString is our own simple error type
type errorString string

// Error implements error
func (e errorString) Error() string {
	return string(e)
}

// Extend appends extra information to an errorString
func (e errorString) Extend(s string, a ...interface{}) errorString {
	return errorString(string(e) + ": " + fmt.Sprintf(s, a...))
}

var (
	// ErrNotFound is the error returned when a key cannot be found in storage
	ErrNotFound = errorString("store/storage: key not found")

	// ErrAlreadyExist is the error returned when a key already exists in storage
	ErrAlreadyExists = errorString("store/storage: key already exists")

	// ErrInvalidkey is the error returned when an invalid key is passed to storage
	ErrInvalidKey = errorString("store/storage: invalid key")

	// errPathIsFile is returned when a path for a disk config is actually a file
	errPathIsFile = errorString("store/storage: path is file")

	// errNoHashesWritten is returned when no blocks are written for given input value
	errNoHashesWritten = errorString("storage/storage: no hashes written")

	// errInvalidNode is returned when read on an invalid node in the store is attempted
	errInvalidNode = errorString("store/storage: invalid node")

	// errCorruptNodes is returned when nodes with missing blocks are found during a BlockStorage clean
	errCorruptNodes = errorString("store/storage: corrupted nodes")
)

// errSwapNoop performs no error swaps
func errSwapNoop(err error) error {
	return err
}

// ErrSwapNotFound swaps syscall.ENOENT for ErrNotFound
func errSwapNotFound(err error) error {
	if err == syscall.ENOENT {
		return ErrNotFound
	}
	return err
}

// errSwapExist swaps syscall.EEXIST for ErrAlreadyExists
func errSwapExist(err error) error {
	if err == syscall.EEXIST {
		return ErrAlreadyExists
	}
	return err
}