Giant blob of minor changes
[dotfiles/.git] / .config / coc / extensions / coc-go-data / tools / pkg / mod / golang.org / x / xerrors@v0.0.0-20200804184101-5ec99f83aff1 / errors.go
1 // Copyright 2011 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.
4
5 package xerrors
6
7 import "fmt"
8
9 // errorString is a trivial implementation of error.
10 type errorString struct {
11         s     string
12         frame Frame
13 }
14
15 // New returns an error that formats as the given text.
16 //
17 // The returned error contains a Frame set to the caller's location and
18 // implements Formatter to show this information when printed with details.
19 func New(text string) error {
20         return &errorString{text, Caller(1)}
21 }
22
23 func (e *errorString) Error() string {
24         return e.s
25 }
26
27 func (e *errorString) Format(s fmt.State, v rune) { FormatError(e, s, v) }
28
29 func (e *errorString) FormatError(p Printer) (next error) {
30         p.Print(e.s)
31         e.frame.Format(p)
32         return nil
33 }