package go_zrfu import ( "fmt" ) var errBehaviorMap map[uint32]string = map[uint32]string{ 0x0001: "NullPointerOfHandle", 0x0002: "NullHandle", 0x0003: "InvalidHandle", 0x0004: "StaleVersionHandle", 0x0005: "HandleIndexPastEnd", 0x0006: "HandleMapWrong", 0x0007: "NullBufferPtr", 0x0008: "IOError", 0x0009: "CBORDecodeError", 0x000A: "ProcNotFound", 0x000B: "ProcRegistryNameError", 0x000C: "ProcCallerNotInit", 0x000D: "ProcCallerRepeatlyInit", 0x000E: "ArgsCBORDecodeError", 0x000F: "ReturnCBOREncodeError", 0x0010: "NoDataToEncodeCBOR", 0x0011: "NoArgsNeed", 0x0012: "NoReturnProvided", 0x0013: "CanNotGetArgs", } var errPrefixMap map[uint32]string = map[uint32]string{ 0x0000_0000: "generic", 0x0001_0000: "BytesVec", 0x0002_0000: "ProcCaller", 0x0101_0000: "ProcCallBasic", 0x0102_0000: "ProcCallInput", 0x0103_0000: "ProcCallReturn", 0x0201_0000: "ProcCalling", } func CheckRetVal(retcode int32) error { if retcode >= 0 { return nil } ecode := uint32(-retcode) beh := ecode & 0x0000FFFF prefix := ecode & 0xFFFF0000 v1, ok := errPrefixMap[prefix] var ps string if ok { ps = v1 } else { ps = "Unknown" } var bhs string v2, ok := errBehaviorMap[beh] if ok { bhs = v2 } else { bhs = "Unknown" } return fmt.Errorf("zrfu calling error: %s.%s", ps, bhs) }