aboutsummaryrefslogtreecommitdiff
path: root/error.go
blob: f88f47e7ac4c826bb1307de3038a047375a82ca8 (plain) (blame)
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
64
65
66
67
68
69
70
71
package bolt

var (
	// ErrInvalid is returned when a data file is not a Bolt-formatted database.
	ErrInvalid = &Error{"Invalid database", nil}

	// ErrVersionMismatch is returned when the data file was created with a
	// different version of Bolt.
	ErrVersionMismatch = &Error{"version mismatch", nil}

	// ErrDatabaseNotOpen is returned when a DB instance is accessed before it
	// is opened or after it is closed.
	ErrDatabaseNotOpen = &Error{"database not open", nil}

	// ErrDatabaseOpen is returned when opening a database that is
	// already open.
	ErrDatabaseOpen = &Error{"database already open", nil}

	// ErrTxNotWritable is returned when performing a write operation on a
	// read-only transaction.
	ErrTxNotWritable = &Error{"tx not writable", nil}

	// ErrTxClosed is returned when committing or rolling back a transaction
	// that has already been committed or rolled back.
	ErrTxClosed = &Error{"tx closed", nil}

	// ErrBucketNotFound is returned when trying to access a bucket that has
	// not been created yet.
	ErrBucketNotFound = &Error{"bucket not found", nil}

	// ErrBucketExists is returned when creating a bucket that already exists.
	ErrBucketExists = &Error{"bucket already exists", nil}

	// ErrBucketNameRequired is returned when creating a bucket with a blank name.
	ErrBucketNameRequired = &Error{"bucket name required", nil}

	// ErrBucketNameTooLarge is returned when creating a bucket with a name
	// that is longer than MaxBucketNameSize.
	ErrBucketNameTooLarge = &Error{"bucket name too large", nil}

	// ErrBucketNotWritable is returned when changing data on a bucket
	// reference that was created from a read-only transaction.
	ErrBucketNotWritable = &Error{"bucket not writable", nil}

	// ErrKeyRequired is returned when inserting a zero-length key.
	ErrKeyRequired = &Error{"key required", nil}

	// ErrKeyTooLarge is returned when inserting a key that is larger than MaxKeySize.
	ErrKeyTooLarge = &Error{"key too large", nil}

	// ErrValueTooLarge is returned when inserting a value that is larger than MaxValueSize.
	ErrValueTooLarge = &Error{"value too large", nil}

	// ErrSequenceOverflow is returned when the next sequence number will be
	// larger than the maximum integer size.
	ErrSequenceOverflow = &Error{"sequence overflow", nil}
)

// Error represents an error condition caused by Bolt.
type Error struct {
	message string
	cause   error
}

// Error returns a string representation of the error.
func (e *Error) Error() string {
	if e.cause != nil {
		return e.message + ": " + e.cause.Error()
	}
	return e.message
}