diff options
author | Elias Fleckenstein <eliasfleckenstein@web.de> | 2022-07-16 21:42:41 +0200 |
---|---|---|
committer | Elias Fleckenstein <eliasfleckenstein@web.de> | 2022-07-16 21:42:41 +0200 |
commit | 5e4ab70bf70fb1361fb3c04796c96532417d3a3e (patch) | |
tree | 5cf7c9f76b484b81a062e96596cfbb5baf832133 | |
parent | 39fcb72f362bfdafbc8072935083b89496648267 (diff) | |
download | mtmap-5e4ab70bf70fb1361fb3c04796c96532417d3a3e.tar.xz |
Add node names and ids to invalid node errorsv0.2.1
-rw-r--r-- | deserialize.go | 22 |
1 files 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 |