-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy patherrors.go
130 lines (104 loc) · 2.07 KB
/
errors.go
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
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
package edtf
import (
"fmt"
)
type NotSetError struct {
}
func (e *NotSetError) Error() string {
return fmt.Sprintf("This property has not (or can not) been set")
}
func NotSet() error {
return &NotImplementedError{}
}
func IsNotSet(e error) bool {
switch e.(type) {
case *NotSetError:
return true
default:
return false
}
}
type NotImplementedError struct {
edtf_str string
label string
}
func (e *NotImplementedError) Error() string {
return fmt.Sprintf("Not implemented '%s' (%s)", e.edtf_str, e.label)
}
func NotImplemented(label string, edtf_str string) error {
return &NotImplementedError{
edtf_str: edtf_str,
label: label,
}
}
func IsNotImplemented(e error) bool {
switch e.(type) {
case *NotImplementedError:
return true
default:
return false
}
}
type InvalidError struct {
edtf_str string
label string
}
func (e *InvalidError) Error() string {
return fmt.Sprintf("Invalid EDTF string '%s' (%s)", e.edtf_str, e.label)
}
func Invalid(label string, edtf_str string) error {
return &InvalidError{
edtf_str: edtf_str,
label: label,
}
}
func IsInvalid(e error) bool {
switch e.(type) {
case *InvalidError:
return true
default:
return false
}
}
type UnsupportedError struct {
edtf_str string
label string
}
func (e *UnsupportedError) Error() string {
return fmt.Sprintf("Unsupported EDTF string '%s' (%s)", e.edtf_str, e.label)
}
func Unsupported(label string, edtf_str string) error {
return &UnsupportedError{
edtf_str: edtf_str,
label: label,
}
}
func IsUnsupported(e error) bool {
switch e.(type) {
case *UnsupportedError:
return true
default:
return false
}
}
type UnrecognizedError struct {
edtf_str string
label string
}
func (e *UnrecognizedError) Error() string {
return fmt.Sprintf("Unrecognized EDTF string '%s' (%s)", e.edtf_str, e.label)
}
func Unrecognized(label string, edtf_str string) error {
return &UnrecognizedError{
edtf_str: edtf_str,
label: label,
}
}
func IsUnrecognized(e error) bool {
switch e.(type) {
case *UnrecognizedError:
return true
default:
return false
}
}