47 lines
602 B
Go
47 lines
602 B
Go
|
package json
|
||
|
|
||
|
type NodeFactory func(typ NodeType) (Node, error)
|
||
|
|
||
|
type Node interface {
|
||
|
String() string
|
||
|
}
|
||
|
|
||
|
type ObjectNode interface {
|
||
|
Node
|
||
|
SetKeyValue(k string, v Node)
|
||
|
GetByKey(k string) (Node, bool)
|
||
|
}
|
||
|
|
||
|
type ArrayNode interface {
|
||
|
Node
|
||
|
Append(v Node)
|
||
|
Index(i int) Node
|
||
|
Len() int
|
||
|
}
|
||
|
|
||
|
type StringNode interface {
|
||
|
Node
|
||
|
SetString(v string)
|
||
|
GetString() string
|
||
|
}
|
||
|
|
||
|
type NumberNode interface {
|
||
|
Node
|
||
|
SetNumber(v float64)
|
||
|
GetNumber() float64
|
||
|
}
|
||
|
|
||
|
type BooleanNode interface {
|
||
|
Node
|
||
|
SetBool(v bool)
|
||
|
GetBool() bool
|
||
|
}
|
||
|
|
||
|
type NullNode interface {
|
||
|
Node
|
||
|
}
|
||
|
|
||
|
type AcceptParent interface {
|
||
|
Parent(n Node)
|
||
|
}
|