2022-12-27 02:37:02 +03:00
|
|
|
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 {
|
2022-12-27 04:14:41 +03:00
|
|
|
SetParent(n Node)
|
2022-12-27 02:37:02 +03:00
|
|
|
}
|