forked from jshiffer/matterbridge
35 lines
1.1 KiB
Go
35 lines
1.1 KiB
Go
// Copyright 2018 The Go Authors. All rights reserved.
|
|
// Use of this source code is governed by a BSD-style
|
|
// license that can be found in the LICENSE file.
|
|
|
|
package xerrors
|
|
|
|
// A Formatter formats error messages.
|
|
type Formatter interface {
|
|
error
|
|
|
|
// FormatError prints the receiver's first error and returns the next error in
|
|
// the error chain, if any.
|
|
FormatError(p Printer) (next error)
|
|
}
|
|
|
|
// A Printer formats error messages.
|
|
//
|
|
// The most common implementation of Printer is the one provided by package fmt
|
|
// during Printf (as of Go 1.13). Localization packages such as golang.org/x/text/message
|
|
// typically provide their own implementations.
|
|
type Printer interface {
|
|
// Print appends args to the message output.
|
|
Print(args ...interface{})
|
|
|
|
// Printf writes a formatted string.
|
|
Printf(format string, args ...interface{})
|
|
|
|
// Detail reports whether error detail is requested.
|
|
// After the first call to Detail, all text written to the Printer
|
|
// is formatted as additional detail, or ignored when
|
|
// detail has not been requested.
|
|
// If Detail returns false, the caller can avoid printing the detail at all.
|
|
Detail() bool
|
|
}
|