Compare commits
9 Commits
Author | SHA1 | Date | |
---|---|---|---|
e381e56bc7 | |||
c0f6b4fcbb | |||
3eec3ce0fb | |||
d6837b4bb6 | |||
80092295f6 | |||
f07b30bf52 | |||
e6b195fbb1 | |||
c329d43fc4 | |||
|
058bad1792 |
21
BUILD
Normal file
21
BUILD
Normal 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
4
ndb.go
@ -203,6 +203,10 @@ func (e *Encoder) Encode(v interface{}) error {
|
|||||||
defer func() {
|
defer func() {
|
||||||
e.start = false
|
e.start = false
|
||||||
}()
|
}()
|
||||||
|
return Switch(e, val)
|
||||||
|
}
|
||||||
|
|
||||||
|
func Switch(e *Encoder, val reflect.Value) error {
|
||||||
switch val.Kind() {
|
switch val.Kind() {
|
||||||
case reflect.Slice:
|
case reflect.Slice:
|
||||||
return e.encodeSlice(val)
|
return e.encodeSlice(val)
|
||||||
|
4
write.go
4
write.go
@ -34,6 +34,10 @@ func (e *Encoder) encodeStruct(val reflect.Value) error {
|
|||||||
func (e *Encoder) encodeMap(val reflect.Value) error {
|
func (e *Encoder) encodeMap(val reflect.Value) error {
|
||||||
for _, k := range val.MapKeys() {
|
for _, k := range val.MapKeys() {
|
||||||
v := val.MapIndex(k)
|
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 {
|
if err := e.writeTuple(k.Interface(), v); err != nil {
|
||||||
return err
|
return err
|
||||||
|
Loading…
Reference in New Issue
Block a user