func (err *Err) Emit() *Err {
	if err == nil {
		_, file, line, _ := runtime.Caller(1)
		err = NewErr("undefined error", 0, ErrID{}).
			WithField("file", file).
			WithField("line", strconv.Itoa(line))
	}
	return err
}
Emit -- if err is nil, the return initialized error
package cherry
import (
	"bytes"
	"fmt"
	"net/http"
	"runtime"
	"strconv"
	"strings"
)
type ErrSID string
type ErrKind uint64
type ErrID struct {
	SID  ErrSID  `json:"sid"`
	Kind ErrKind `json:"kind"`
}
func (errID *ErrID) String() string {
	return fmt.Sprintf("%v-%v", errID.SID, errID.Kind)
}
type Fields map[string]string
type Err struct {
	Message    string   `json:"message"`
	StatusHTTP int      `json:"status_http"`
	ID         ErrID    `json:"id"`
	Details    []string `json:"details,omitempty"`
	Fields     Fields   `json:"fields,omitempty"`
}
func NewErr(msg string, status int, ID ErrID) *Err {
	return &Err{
		Message:    msg,
		StatusHTTP: status,
		ID:         ID,
	}
}