20 lines
		
	
	
		
			468 B
		
	
	
	
		
			Go
		
	
	
	
			
		
		
	
	
			20 lines
		
	
	
		
			468 B
		
	
	
	
		
			Go
		
	
	
	
package errors
 | 
						|
 | 
						|
import (
 | 
						|
	"fmt"
 | 
						|
	"io"
 | 
						|
 | 
						|
	"github.com/pkg/errors"
 | 
						|
)
 | 
						|
 | 
						|
// Format helps to implement fmt.Formatter used by Sprint(f) or Fprint(f) etc.
 | 
						|
func Format(err error, s fmt.State, verb rune) {
 | 
						|
	formatter, ok := errors.WithStack(err).(fmt.Formatter)
 | 
						|
	if !ok {
 | 
						|
		// should never occur if the error was wrapped properly
 | 
						|
		panic(errors.New("this was unexpected, merged error is not fmt.Formatter"))
 | 
						|
	}
 | 
						|
	_, _ = io.WriteString(s, err.Error())
 | 
						|
	formatter.Format(s, verb)
 | 
						|
}
 |