func (e *ConcreteUserError) Cause() error {
	return e.ErrCause
}
Cause complies to the UserError interface.
package errors
import "fmt"
type UserError interface {
	Cause() error
	Status() int
	Code() string
	Message() string
	Error() string
}
type ConcreteUserError struct {
	ErrCause   error  `json:"-"`
	ErrStatus  int    `json:"-"`
	ErrCode    string `json:"code"`
	ErrMessage string `json:"message"`
}
func Build(err UserError) *ConcreteUserError {
	return &ConcreteUserError{
		ErrCause:   err.Cause(),
		ErrStatus:  err.Status(),
		ErrCode:    err.Code(),
		ErrMessage: err.Message(),
	}
}
func (e *ConcreteUserError) Error() string {
	if e.ErrCause != nil {
		return e.ErrCause.Error()
	}
	return ""
}