Compare commits

...

9 Commits

Author SHA1 Message Date
e381e56bc7 test 2025-05-08 22:01:09 +03:00
c0f6b4fcbb test 2025-05-08 21:58:17 +03:00
3eec3ce0fb test 2025-05-08 21:49:20 +03:00
d6837b4bb6 test 2025-05-08 21:46:09 +03:00
80092295f6 test 2025-05-08 21:44:49 +03:00
f07b30bf52 test 2025-05-08 21:41:05 +03:00
e6b195fbb1 tree map 2025-05-08 21:30:05 +03:00
c329d43fc4 map tree 2025-05-08 21:17:10 +03:00
David Arroyo
058bad1792 Add bazel BUILD file 2018-04-12 20:13:10 -04:00
3 changed files with 29 additions and 0 deletions

21
BUILD Normal file
View File

@ -0,0 +1,21 @@
load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
go_library(
name = "go_default_library",
srcs = [
"ndb.go",
"read.go",
"write.go",
],
importpath = "aqwari.net/encoding/ndb",
visibility = ["//visibility:public"],
)
go_test(
name = "go_default_test",
srcs = [
"read_test.go",
"write_test.go",
],
embed = [":go_default_library"],
)

4
ndb.go
View File

@ -203,6 +203,10 @@ func (e *Encoder) Encode(v interface{}) error {
defer func() {
e.start = false
}()
return Switch(e, val)
}
func Switch(e *Encoder, val reflect.Value) error {
switch val.Kind() {
case reflect.Slice:
return e.encodeSlice(val)

View File

@ -34,6 +34,10 @@ func (e *Encoder) encodeStruct(val reflect.Value) error {
func (e *Encoder) encodeMap(val reflect.Value) error {
for _, k := range val.MapKeys() {
v := val.MapIndex(k)
println(v.Elem().Kind().String())
if v.Elem().Kind() == reflect.Map {
return e.encodeMap(v)
}
if err := e.writeTuple(k.Interface(), v); err != nil {
return err