package packfile import "fmt" // Error specifies errors returned during packfile parsing. type Error struct { reason, details string } // NewError returns a new error. func NewError(reason string) *Error { return &Error{reason: reason} } // Error returns a text representation of the error. func (e *Error) Error() string { if e.details == "" { return e.reason } return fmt.Sprintf("%s: %s", e.reason, e.details) } // AddDetails adds details to an error, with additional text. func (e *Error) AddDetails(format string, args ...interface{}) *Error { return &Error{ reason: e.reason, details: fmt.Sprintf(format, args...), } }