|
|
- package types
-
- import (
- "fmt"
- )
-
- // CONTRACT: a zero Result is OK.
- type Result struct {
- Code CodeType
- Data []byte
- Log string // Can be non-deterministic
- }
-
- func NewResult(code CodeType, data []byte, log string) Result {
- return Result{
- Code: code,
- Data: data,
- Log: log,
- }
- }
-
- func (res Result) IsOK() bool {
- return res.Code == CodeType_OK
- }
-
- func (res Result) IsErr() bool {
- return res.Code != CodeType_OK
- }
-
- func (res Result) Error() string {
- return fmt.Sprintf("TMSP code:%v, data:%X, log:%v", res.Code, res.Data, res.Log)
- }
-
- func (res Result) PrependLog(log string) Result {
- return Result{
- Code: res.Code,
- Data: res.Data,
- Log: log + ";" + res.Log,
- }
- }
-
- func (res Result) AppendLog(log string) Result {
- return Result{
- Code: res.Code,
- Data: res.Data,
- Log: res.Log + ";" + log,
- }
- }
-
- func (res Result) SetLog(log string) Result {
- return Result{
- Code: res.Code,
- Data: res.Data,
- Log: log,
- }
- }
-
- func (res Result) SetData(data []byte) Result {
- return Result{
- Code: res.Code,
- Data: data,
- Log: res.Log,
- }
- }
-
- //----------------------------------------
-
- // NOTE: if data == nil and log == "", same as zero Result.
- func NewResultOK(data []byte, log string) Result {
- return Result{
- Code: CodeType_OK,
- Data: data,
- Log: log,
- }
- }
-
- func NewError(code CodeType, log string) Result {
- return Result{
- Code: code,
- Log: log,
- }
- }
|