87a12421a9
Instead of having to create a bunch of custom error types that are doing nothing but wrapping another error in sub-packages, use a common helper to create errors of the requested type. e.g. instead of re-implementing this over and over: ```go type notFoundError struct { cause error } func(e notFoundError) Error() string { return e.cause.Error() } func(e notFoundError) NotFound() {} func(e notFoundError) Cause() error { return e.cause } ``` Packages can instead just do: ``` errdefs.NotFound(err) ``` Signed-off-by: Brian Goff <cpuguy83@gmail.com>
66 lines
1.3 KiB
Go
66 lines
1.3 KiB
Go
package plugin
|
|
|
|
import "fmt"
|
|
|
|
type errNotFound string
|
|
|
|
func (name errNotFound) Error() string {
|
|
return fmt.Sprintf("plugin %q not found", string(name))
|
|
}
|
|
|
|
func (errNotFound) NotFound() {}
|
|
|
|
type errAmbiguous string
|
|
|
|
func (name errAmbiguous) Error() string {
|
|
return fmt.Sprintf("multiple plugins found for %q", string(name))
|
|
}
|
|
|
|
func (name errAmbiguous) InvalidParameter() {}
|
|
|
|
type errDisabled string
|
|
|
|
func (name errDisabled) Error() string {
|
|
return fmt.Sprintf("plugin %s found but disabled", string(name))
|
|
}
|
|
|
|
func (name errDisabled) Conflict() {}
|
|
|
|
type invalidFilter struct {
|
|
filter string
|
|
value []string
|
|
}
|
|
|
|
func (e invalidFilter) Error() string {
|
|
msg := "Invalid filter '" + e.filter
|
|
if len(e.value) > 0 {
|
|
msg += fmt.Sprintf("=%s", e.value)
|
|
}
|
|
return msg + "'"
|
|
}
|
|
|
|
func (invalidFilter) InvalidParameter() {}
|
|
|
|
type inUseError string
|
|
|
|
func (e inUseError) Error() string {
|
|
return "plugin " + string(e) + " is in use"
|
|
}
|
|
|
|
func (inUseError) Conflict() {}
|
|
|
|
type enabledError string
|
|
|
|
func (e enabledError) Error() string {
|
|
return "plugin " + string(e) + " is enabled"
|
|
}
|
|
|
|
func (enabledError) Conflict() {}
|
|
|
|
type alreadyExistsError string
|
|
|
|
func (e alreadyExistsError) Error() string {
|
|
return "plugin " + string(e) + " already exists"
|
|
}
|
|
|
|
func (alreadyExistsError) Conflict() {}
|