func WrapAsGRPC(code errcode.ErrorCode) ErrorCodeStatus {
	return codeStatus{code}
}
WrapAsGRPC constructs a value that responds as both an ErrorCode and as a GRPC status
package grpc
import (
	"github.com/pingcap/errcode"
	"github.com/pingcap/errors"
	"google.golang.org/grpc/codes"
	"google.golang.org/grpc/status"
)
type StatusGRPC interface {
	GRPCStatus() *status.Status
}
type ErrorCodeStatus interface {
	errcode.ErrorCode
	StatusGRPC
}
type codeStatus struct {
	errcode.ErrorCode
}
func (wrapper codeStatus) GRPCStatus() *status.Status {
	return Status(wrapper.ErrorCode)
}
func (wrapper codeStatus) Cause() error {
	return wrapper.ErrorCode
}
var _ errcode.ErrorCode = (*codeStatus)(nil)      
var _ StatusGRPC = (*codeStatus)(nil)      
var _ errcode.Causer = (*codeStatus)(nil)      