diff --git a/.gitignore b/.gitignore index 543e80e..c2f7e30 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,3 @@ -pkg .gopath .idea *.iml diff --git a/src/pkg/rdb/mix.go b/src/pkg/rdb/mix.go new file mode 100644 index 0000000..850e387 --- /dev/null +++ b/src/pkg/rdb/mix.go @@ -0,0 +1,37 @@ +package rdb + +func rdbLoadCheckModuleValue(l *Loader) error { + var opcode uint32 + var err error + for { + if opcode, err = l.ReadLength(); err != nil { + return err + } else if opcode == rdbModuleOpcodeEof { + break + } + + switch opcode { + case rdbModuleOpcodeSint: + fallthrough + case rdbModuleOpcodeUint: + if _, err = l.ReadLength(); err != nil { + return err + } + case rdbModuleOpcodeString: + if _, err = l.ReadString(); err != nil { + return err + } + case rdbModuleOpcodeFloat: + // float 32 bits + if _, err = l.ReadFloat(); err != nil { + return err + } + case rdbModuleOpcodeDouble: + // double 64 bits + if _, err = l.ReadDouble(); err != nil { + return err + } + } + } + return nil +} \ No newline at end of file