func (e OpErrCode) GetOperation() string {
	return e.Operation
}
GetOperation satisfies the HasOperation interface.
package errcode
type HasOperation interface {
	GetOperation() string
}
func Operation(v interface{}) string {
	var operation string
	if hasOp, ok := v.(HasOperation); ok {
		operation = hasOp.GetOperation()
	}
	return operation
}
type EmbedOp struct{ Op string }
func (e EmbedOp) GetOperation() string {
	return e.Op
}
type OpErrCode struct {
	Operation string
	Err       ErrorCode
}
func (e OpErrCode) Cause() error {
	return e.Err
}
func (e OpErrCode) Error() string {
	return e.Operation + ": " + e.Err.Error()
}