diff --git a/packages/binary/marshalutil/generic_parser.go b/packages/binary/marshalutil/generic_parser.go deleted file mode 100644 index e8a7409c0fdd2fd6bc3b41d2387413a3f9c6a23c..0000000000000000000000000000000000000000 --- a/packages/binary/marshalutil/generic_parser.go +++ /dev/null @@ -1,3 +0,0 @@ -package marshalutil - -type GenericParser func(data []byte) (result interface{}, err error, consumedBytes int) diff --git a/packages/binary/marshalutil/marshalutil.go b/packages/binary/marshalutil/marshalutil.go index 45ab8ad2ce81d77dbc4910fe6fe74b83cd878dec..3e96aeffdd3052887f970d1c19180f3bc7c20b6e 100644 --- a/packages/binary/marshalutil/marshalutil.go +++ b/packages/binary/marshalutil/marshalutil.go @@ -38,10 +38,11 @@ func New(args ...interface{}) *MarshalUtil { } } -func (util *MarshalUtil) Parse(parser GenericParser) (result interface{}, err error) { +func (util *MarshalUtil) Parse(parser func(data []byte) (result interface{}, err error, consumedBytes int)) (result interface{}, err error) { result, err, readBytes := parser(util.bytes[util.readOffset:]) - - util.ReadSeek(util.readOffset + readBytes) + if err != nil { + util.ReadSeek(util.readOffset + readBytes) + } return }