1 // Copyright 2018 The Go Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style
3 // license that can be found in the LICENSE file.
7 // A Formatter formats error messages.
8 type Formatter interface {
11 // FormatError prints the receiver's first error and returns the next error in
12 // the error chain, if any.
13 FormatError(p Printer) (next error)
16 // A Printer formats error messages.
18 // The most common implementation of Printer is the one provided by package fmt
19 // during Printf (as of Go 1.13). Localization packages such as golang.org/x/text/message
20 // typically provide their own implementations.
21 type Printer interface {
22 // Print appends args to the message output.
23 Print(args ...interface{})
25 // Printf writes a formatted string.
26 Printf(format string, args ...interface{})
28 // Detail reports whether error detail is requested.
29 // After the first call to Detail, all text written to the Printer
30 // is formatted as additional detail, or ignored when
31 // detail has not been requested.
32 // If Detail returns false, the caller can avoid printing the detail at all.