Skip to content
This repository was archived by the owner on Apr 11, 2022. It is now read-only.

Commit 4d530aa

Browse files
committed
fixes null value rendering
fixes #7
1 parent aac7aa3 commit 4d530aa

File tree

1 file changed

+37
-1
lines changed

1 file changed

+37
-1
lines changed

tree.go

Lines changed: 37 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -299,7 +299,6 @@ func (n floatNode) draw(writer io.Writer, padding, lvl int) error {
299299
}
300300
func (n floatNode) filter(query query) bool {
301301
return true
302-
303302
}
304303

305304
type stringNode struct {
@@ -370,6 +369,39 @@ func (n boolNode) draw(writer io.Writer, padding, lvl int) error {
370369
func (n boolNode) filter(query query) bool {
371370
return true
372371
}
372+
373+
type nilNode struct {
374+
baseTreeNode
375+
}
376+
377+
func (n *nilNode) collapseAll() {
378+
}
379+
func (n *nilNode) expandAll() {
380+
}
381+
382+
func (n nilNode) isCollapsable() bool {
383+
return false
384+
}
385+
386+
func (n nilNode) find(tp treePosition) treeNode {
387+
return nil
388+
}
389+
390+
func (n nilNode) String(_, _ int) string {
391+
return "null"
392+
}
393+
394+
func (n nilNode) search(query string) (treeNode, error) {
395+
return nil, nil
396+
397+
}
398+
func (n nilNode) draw(writer io.Writer, padding, lvl int) error {
399+
return nil
400+
401+
}
402+
func (n nilNode) filter(query query) bool {
403+
return true
404+
}
373405
func newTree(y interface{}) (treeNode, error) {
374406
var tree treeNode
375407
switch v := y.(type) {
@@ -383,6 +415,10 @@ func newTree(y interface{}) (treeNode, error) {
383415
baseTreeNode{true},
384416
v,
385417
}
418+
419+
case nil:
420+
tree = &nilNode{baseTreeNode{true}}
421+
386422
case float64:
387423
tree = &floatNode{
388424
baseTreeNode{true},

0 commit comments

Comments
 (0)