Repository navigation
Expand file tree
/
Copy patherrors.go
More file actions
88 lines (77 loc) · 2.58 KB
/
Copy patherrors.go
File metadata and controls
88 lines (77 loc) · 2.58 KB
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
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
package libfossil
import (
"errors"
"fmt"
)
type RC int
const (
RCOK RC = 0
RCError RC = 100
RCNYI RC = 101
RCOOM RC = 102
RCMisuse RC = 103
RCRange RC = 104
RCAccess RC = 105
RCIO RC = 106
RCNotFound RC = 107
RCAlreadyExists RC = 108
RCConsistency RC = 109
RCRepoNeedsRebuild RC = 110
RCNotARepo RC = 111
RCRepoVersion RC = 112
RCDB RC = 113
RCBreak RC = 114
RCStepRow RC = 115
RCStepDone RC = 116
RCStepError RC = 117
RCType RC = 118
RCNotACkout RC = 119
RCRepoMismatch RC = 120
RCChecksumMismatch RC = 121
RCLocked RC = 122
RCConflict RC = 123
RCSizeMismatch RC = 124
RCPhantom RC = 125
RCUnsupported RC = 126
)
var rcNames = map[RC]string{
RCOK: "ok", RCError: "error", RCNYI: "nyi", RCOOM: "oom",
RCMisuse: "misuse", RCRange: "range", RCAccess: "access", RCIO: "io",
RCNotFound: "not_found", RCAlreadyExists: "already_exists",
RCConsistency: "consistency", RCRepoNeedsRebuild: "repo_needs_rebuild",
RCNotARepo: "not_a_repo", RCRepoVersion: "repo_version", RCDB: "db",
RCBreak: "break", RCStepRow: "step_row", RCStepDone: "step_done",
RCStepError: "step_error", RCType: "type", RCNotACkout: "not_a_ckout",
RCRepoMismatch: "repo_mismatch", RCChecksumMismatch: "checksum_mismatch",
RCLocked: "locked", RCConflict: "conflict", RCSizeMismatch: "size_mismatch",
RCPhantom: "phantom", RCUnsupported: "unsupported",
}
func (rc RC) String() string {
if s, ok := rcNames[rc]; ok {
return s
}
return fmt.Sprintf("rc_%d", int(rc))
}
type FslError struct {
Code RC
Msg string
Cause error
}
func (e *FslError) Error() string {
return fmt.Sprintf("fossil(%s): %s", e.Code, e.Msg)
}
func (e *FslError) Unwrap() error {
return e.Cause
}
// ErrVersionNotFound is returned by ResolveVersion when the requested version
// string does not match any artifact in the repository. Callers can match
// with errors.Is.
var ErrVersionNotFound = errors.New("libfossil: version not found")
// ErrAmbiguousVersion is returned by ResolveVersion when a UUID prefix
// matches more than one artifact (collision). Callers can match with
// errors.Is.
var ErrAmbiguousVersion = errors.New("libfossil: ambiguous version prefix")
// ErrArtifactNotFound is returned by UUIDFromRID when the given RID does not
// correspond to any artifact in the repository's blob table. Callers can
// match with errors.Is.
var ErrArtifactNotFound = errors.New("libfossil: artifact not found")