From 5e4ab70bf70fb1361fb3c04796c96532417d3a3e Mon Sep 17 00:00:00 2001 From: Elias Fleckenstein Date: Sat, 16 Jul 2022 21:42:41 +0200 Subject: [PATCH] Add node names and ids to invalid node errors --- deserialize.go | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/deserialize.go b/deserialize.go index 8722bd7..7e3ffb6 100644 --- a/deserialize.go +++ b/deserialize.go @@ -4,6 +4,7 @@ import ( "compress/zlib" "encoding/binary" "errors" + "fmt" "github.com/anon55555/mt" "io" ) @@ -15,9 +16,24 @@ var ( ErrInvalidNodeMetaVer = errors.New("invalid node meta version") ErrInvalidNameIdMapVer = errors.New("invalid name id mapping version") ErrInvalidStaticObjVer = errors.New("invalid static object version") - ErrInvalidNode = errors.New("invalid node") ) +type ErrInvalidNodeName struct { + Name string +} + +func (e ErrInvalidNodeName) Error() string { + return fmt.Sprintf("invalid node %v", e.Name) +} + +type ErrInvalidNodeId struct { + Id mt.Content +} + +func (e ErrInvalidNodeId) Error() string { + return fmt.Sprintf("invalid node %v", e.Id) +} + func Deserialize(r io.Reader, idNameMap map[string]mt.Content) *MapBlk { var blk = &MapBlk{} @@ -247,12 +263,12 @@ func Deserialize(r io.Reader, idNameMap map[string]mt.Content) *MapBlk { for i := 0; i < 4096; i++ { name, ok := nameIdMap[blk.Param0[i]] if !ok { - panic(ErrInvalidNode) + panic(ErrInvalidNodeId{blk.Param0[i]}) } id, ok := idNameMap[name] if !ok { - panic(ErrInvalidNode) + panic(ErrInvalidNodeName{name}) } blk.Param0[i] = id -- 2.44.0