if data == nil {
return nil
}
+ if intf, ok := data.(*reflect.InterfaceValue); ok {
+ data = intf.Elem()
+ }
switch typ := data.Type().(type) {
case *reflect.StructType:
return v.Get() == ""
case *reflect.StructValue:
return false
+ case *reflect.MapValue:
+ return false
case *reflect.ArrayValue:
return v.Len() == 0
case *reflect.SliceValue:
"container/vector"
"fmt"
"io"
+ "json"
"testing"
)
true bool
false bool
mp map[string]string
+ json interface{}
innermap U
stringmap map[string]string
bytes []byte
out: "55\n",
},
+ &Test{
+ in: "{.section innermap}{.section mp}{innerkey}{.end}{.end}\n",
+
+ out: "55\n",
+ },
+ &Test{
+ in: "{.section json}{.repeated section maps}{a}{b}{.end}{.end}\n",
+
+ out: "1234\n",
+ },
&Test{
in: "{stringmap.stringkey1}\n",
s.false = false
s.mp = make(map[string]string)
s.mp["mapkey"] = "Ahoy!"
+ s.json, _ = json.Decode("{\"maps\":[{\"a\":1,\"b\":2},{\"a\":3,\"b\":4}]}")
s.innermap.mp = make(map[string]int)
s.innermap.mp["innerkey"] = 55
s.stringmap = make(map[string]string)