aboutsummaryrefslogtreecommitdiff
path: root/model/query.go
diff options
context:
space:
mode:
Diffstat (limited to 'model/query.go')
-rw-r--r--model/query.go33
1 files changed, 0 insertions, 33 deletions
diff --git a/model/query.go b/model/query.go
deleted file mode 100644
index 56a0dfe..0000000
--- a/model/query.go
+++ /dev/null
@@ -1,33 +0,0 @@
-package model
-
-import (
- "fmt"
- "strconv"
-)
-
-// Query returns node by array query
-func Query(n Node, query []string) (Node, error) {
- if len(query) == 0 {
- return n, nil
- }
- head, rest := query[0], query[1:]
- switch n := n.(type) {
- case *ArrayNode:
- idx, err := strconv.Atoi(head)
- if err != nil {
- return nil, fmt.Errorf("index must be a number, got %s", head)
- }
- next, err := n.Index(idx)
- if err != nil {
- return nil, err
- }
- return Query(next, rest)
- case *ObjectNode:
- next, err := n.Get(head)
- if err != nil {
- return nil, err
- }
- return Query(next, rest)
- }
- return nil, fmt.Errorf("can't get %s from node type %s", head, n.Type())
-}