]> git.lizzy.rs Git - mtmap.git/commitdiff
Add node names and ids to invalid node errors v0.2.1
authorElias Fleckenstein <eliasfleckenstein@web.de>
Sat, 16 Jul 2022 19:42:41 +0000 (21:42 +0200)
committerElias Fleckenstein <eliasfleckenstein@web.de>
Sat, 16 Jul 2022 19:42:41 +0000 (21:42 +0200)
deserialize.go

index 8722bd7fc95e55bf4ff80fe7baaa18ab658e9a67..7e3ffb68c5a9d2e9e007e9b7070666588db69596 100644 (file)
@@ -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