aboutsummaryrefslogtreecommitdiffhomepage
path: root/container/msg.go
diff options
context:
space:
mode:
Diffstat (limited to 'container/msg.go')
-rw-r--r--container/msg.go18
1 files changed, 18 insertions, 0 deletions
diff --git a/container/msg.go b/container/msg.go
index 40f0bd4a..4be0fd2d 100644
--- a/container/msg.go
+++ b/container/msg.go
@@ -1,10 +1,28 @@
package container
import (
+ "errors"
"log"
"sync/atomic"
)
+// MessageError is an error with a user-facing message.
+type MessageError interface {
+ // Message returns a user-facing error message.
+ Message() string
+
+ error
+}
+
+// GetErrorMessage returns whether an error implements [MessageError], and the message if it does.
+func GetErrorMessage(err error) (string, bool) {
+ var e MessageError
+ if !errors.As(err, &e) || e == nil {
+ return zeroString, false
+ }
+ return e.Message(), true
+}
+
type Msg interface {
IsVerbose() bool
Verbose(v ...any)