mirror of
https://github.com/fluencelabs/tendermint
synced 2025-06-06 01:51:20 +00:00
Add efficient implementation of fmt and use for errors.
This commit is contained in:
parent
bb875303c2
commit
99437a96fb
@ -10,16 +10,19 @@ import (
|
|||||||
|
|
||||||
type Error interface {
|
type Error interface {
|
||||||
Error() string
|
Error() string
|
||||||
Trace(msg string) Error
|
Trace(format string, a ...interface{}) Error
|
||||||
TraceCause(cause error, msg string) Error
|
TraceCause(cause error, format string, a ...interface{}) Error
|
||||||
Cause() error
|
Cause() error
|
||||||
}
|
}
|
||||||
|
|
||||||
func NewError(msg string) Error {
|
func NewError(format string, a ...interface{}) Error {
|
||||||
|
msg := Fmt(format, a...)
|
||||||
return newError(msg, nil)
|
return newError(msg, nil)
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func NewErrorWithCause(cause error, msg string) Error {
|
func NewErrorWithCause(cause error, format string, a ...interface{}) Error {
|
||||||
|
msg := Fmt(format, a...)
|
||||||
return newError(msg, cause)
|
return newError(msg, cause)
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -39,6 +42,7 @@ type cmnError struct {
|
|||||||
traces []traceItem
|
traces []traceItem
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// NOTE: Do not expose, it's not very friendly.
|
||||||
func newError(msg string, cause error) *cmnError {
|
func newError(msg string, cause error) *cmnError {
|
||||||
return &cmnError{
|
return &cmnError{
|
||||||
msg: msg,
|
msg: msg,
|
||||||
@ -52,13 +56,15 @@ func (err *cmnError) Error() string {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Add tracing information with msg.
|
// Add tracing information with msg.
|
||||||
func (err *cmnError) Trace(msg string) Error {
|
func (err *cmnError) Trace(format string, a ...interface{}) Error {
|
||||||
|
msg := Fmt(format, a...)
|
||||||
return err.doTrace(msg, 2)
|
return err.doTrace(msg, 2)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Add tracing information with cause and msg.
|
// Add tracing information with cause and msg.
|
||||||
// If a cause was already set before, it is overwritten.
|
// If a cause was already set before, it is overwritten.
|
||||||
func (err *cmnError) TraceCause(cause error, msg string) Error {
|
func (err *cmnError) TraceCause(cause error, format string, a ...interface{}) Error {
|
||||||
|
msg := Fmt(format, a...)
|
||||||
err.cause = cause
|
err.cause = cause
|
||||||
return err.doTrace(msg, 2)
|
return err.doTrace(msg, 2)
|
||||||
}
|
}
|
||||||
|
@ -6,8 +6,14 @@ import (
|
|||||||
"strings"
|
"strings"
|
||||||
)
|
)
|
||||||
|
|
||||||
// Fmt shorthand, XXX DEPRECATED
|
// Like fmt.Sprintf, but skips formatting if args are empty.
|
||||||
var Fmt = fmt.Sprintf
|
var Fmt = func(format string, a ...interface{}) string {
|
||||||
|
if len(a) == 0 {
|
||||||
|
return format
|
||||||
|
} else {
|
||||||
|
return fmt.Sprintf(format, a...)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// RightPadString adds spaces to the right of a string to make it length totalLength
|
// RightPadString adds spaces to the right of a string to make it length totalLength
|
||||||
func RightPadString(s string, totalLength int) string {
|
func RightPadString(s string, totalLength int) string {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user