summaryrefslogtreecommitdiff
path: root/json/json.go
diff options
context:
space:
mode:
authorAdam Scarr <adam@vektah.net>2017-08-06 23:32:10 +1000
committerAdam Scarr <adam@vektah.net>2017-08-06 23:32:10 +1000
commit666ea93dba377f267a2c8ecf97378a420db18383 (patch)
tree5efee0b6e4ccf44b854d9bb65e4e6fa5e7f86548 /json/json.go
parent9d7779e8ca5404f26abbd8cce0314d9cee967bba (diff)
Eliminate a bunch of allocations
Diffstat (limited to 'json/json.go')
-rw-r--r--json/json.go20
1 files changed, 10 insertions, 10 deletions
diff --git a/json/json.go b/json/json.go
index 3aa5163..60c5a3f 100644
--- a/json/json.go
+++ b/json/json.go
@@ -9,15 +9,15 @@ import (
var (
value Parser
- array = Map(And(WS, "[", Kleene(&value, And(WS, ",")), "]"), func(n Node) Node {
- return n.([]Node)[1].([]Node)
+ array = Map(And(WS, "[", Kleene(&value, And(WS, ",")), "]"), func(n interface{}) interface{} {
+ return n.([]interface{})[1].([]interface{})
})
properties = Kleene(And(WS, String('"'), WS, ":", WS, &value), ",")
- object = Map(And(WS, "{", WS, properties, WS, "}"), func(n Node) Node {
+ object = Map(And(WS, "{", WS, properties, WS, "}"), func(n interface{}) interface{} {
ret := map[string]interface{}{}
- for _, prop := range n.([]Node)[1].([]Node) {
- vals := prop.([]Node)
+ for _, prop := range n.([]interface{})[1].([]interface{}) {
+ vals := prop.([]interface{})
if len(vals) == 3 {
ret[vals[0].(string)] = vals[2]
} else {
@@ -28,20 +28,20 @@ var (
return ret
})
- _null = Map(And(WS, "null"), func(n Node) Node {
+ _null = Map(And(WS, "null"), func(n interface{}) interface{} {
return nil
})
- _true = Map(And(WS, "true"), func(n Node) Node {
+ _true = Map(And(WS, "true"), func(n interface{}) interface{} {
return true
})
- _false = Map(And(WS, "false"), func(n Node) Node {
+ _false = Map(And(WS, "false"), func(n interface{}) interface{} {
return false
})
- Y = Map(And(&value, WS), func(n Node) Node {
- nodes := n.([]Node)
+ Y = Map(And(&value, WS), func(n interface{}) interface{} {
+ nodes := n.([]interface{})
if len(nodes) > 0 {
return nodes[0]
}