From 931a17e36d5c972cbf17ee739b81529aa97883cb Mon Sep 17 00:00:00 2001 From: Kevin Chabowski Date: Fri, 21 Mar 2014 21:49:34 +0100 Subject: Initial commit --- common.go | 68 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 68 insertions(+) create mode 100644 common.go (limited to 'common.go') diff --git a/common.go b/common.go new file mode 100644 index 0000000..97c8fdc --- /dev/null +++ b/common.go @@ -0,0 +1,68 @@ +// Package binproto provides functions to handle a simple binary protocol. +package binproto + +import ( + "errors" +) + +type UnitType byte + +// Possible UnitType values +const ( + UTNil = iota + UTRequest + UTAnswer + UTEvent + UTBin + UTNumber + UTList + UTTextKVMap + UTIdKVMap + UTUKey + UTBinStream + UTTerm + UTBool + UTByte +) + +func (ut UnitType) String() string { + switch ut { + case UTNil: + return "UTNil" + case UTRequest: + return "UTRequest" + case UTAnswer: + return "UTAnswer" + case UTEvent: + return "UTEvent" + case UTBin: + return "UTBin" + case UTNumber: + return "UTNumber" + case UTList: + return "UTList" + case UTTextKVMap: + return "UTTextKVMap" + case UTIdKVMap: + return "UTIdKVMap" + case UTUKey: + return "UTUKey" + case UTBinStream: + return "UTBinStream" + case UTTerm: + return "UTTerm" + case UTBool: + return "UTBool" + case UTByte: + return "UTByte" + } + return "Unknown unit" +} + +// Errors +var ( + UnknownUnit = errors.New("Unknown unit received") + UnexpectedUnit = errors.New("Unexpected unit received") + Terminated = errors.New("List or KVMap terminated") + TooDeeplyNested = errors.New("Received data is too deeply nested to skip") +) -- cgit v1.2.3-54-g00ecf