in txerr/report.go [51:80]
func Report(in error, verbose bool) string {
buf := &strbld.Builder{}
putStr(buf, directOp(in))
putStr(buf, directCtx(in))
// if hasMsg is false, new newline will be added when printing the 'cause'
hasMsg := any(
putKind(buf, directKind(in)),
putStr(buf, directMsg(in)),
)
if !verbose {
return buf.String()
}
switch err := in.(type) {
case withChild:
putErr(buf, hasMsg, err.Cause())
case withChildren:
for _, sub := range err.Causes() {
putSubErr(buf, sub)
}
}
if buf.Len() == 0 {
return "unknown error"
}
return buf.String()
}