1package plugin
2
3import "fmt"
4
5type errNotFound string
6
7func (name errNotFound) Error() string {
8	return fmt.Sprintf("plugin %q not found", string(name))
9}
10
11func (errNotFound) NotFound() {}
12
13type errAmbiguous string
14
15func (name errAmbiguous) Error() string {
16	return fmt.Sprintf("multiple plugins found for %q", string(name))
17}
18
19func (name errAmbiguous) InvalidParameter() {}
20
21type errDisabled string
22
23func (name errDisabled) Error() string {
24	return fmt.Sprintf("plugin %s found but disabled", string(name))
25}
26
27func (name errDisabled) Conflict() {}
28
29type validationError struct {
30	cause error
31}
32
33func (e validationError) Error() string {
34	return e.cause.Error()
35}
36
37func (validationError) Conflict() {}
38
39func (e validationError) Cause() error {
40	return e.cause
41}
42
43type systemError struct {
44	cause error
45}
46
47func (e systemError) Error() string {
48	return e.cause.Error()
49}
50
51func (systemError) SystemError() {}
52
53func (e systemError) Cause() error {
54	return e.cause
55}
56
57type invalidFilter struct {
58	filter string
59	value  []string
60}
61
62func (e invalidFilter) Error() string {
63	msg := "Invalid filter '" + e.filter
64	if len(e.value) > 0 {
65		msg += fmt.Sprintf("=%s", e.value)
66	}
67	return msg + "'"
68}
69
70func (invalidFilter) InvalidParameter() {}
71
72type inUseError string
73
74func (e inUseError) Error() string {
75	return "plugin " + string(e) + " is in use"
76}
77
78func (inUseError) Conflict() {}
79
80type enabledError string
81
82func (e enabledError) Error() string {
83	return "plugin " + string(e) + " is enabled"
84}
85
86func (enabledError) Conflict() {}
87
88type alreadyExistsError string
89
90func (e alreadyExistsError) Error() string {
91	return "plugin " + string(e) + " already exists"
92}
93
94func (alreadyExistsError) Conflict() {}
95