mirror of
https://github.com/LukeHagar/libopenapi.git
synced 2025-12-09 12:37:49 +00:00
57 lines
1.0 KiB
Go
57 lines
1.0 KiB
Go
package low
|
|
|
|
import (
|
|
"fmt"
|
|
"github.com/pb33f/libopenapi/index"
|
|
"gopkg.in/yaml.v3"
|
|
)
|
|
|
|
type HasNode interface {
|
|
GetNode() *yaml.Node
|
|
}
|
|
|
|
type Buildable[T any] interface {
|
|
Build(node *yaml.Node, idx *index.SpecIndex) error
|
|
*T
|
|
}
|
|
|
|
type NodeReference[T any] struct {
|
|
Value T
|
|
ValueNode *yaml.Node
|
|
KeyNode *yaml.Node
|
|
}
|
|
|
|
type KeyReference[T any] struct {
|
|
Value T
|
|
KeyNode *yaml.Node
|
|
}
|
|
|
|
type ValueReference[T any] struct {
|
|
Value T
|
|
ValueNode *yaml.Node
|
|
}
|
|
|
|
func (n NodeReference[T]) IsEmpty() bool {
|
|
return n.KeyNode == nil && n.ValueNode == nil
|
|
}
|
|
|
|
func (n NodeReference[T]) GenerateMapKey() string {
|
|
return fmt.Sprintf("%d:%d", n.ValueNode.Line, n.ValueNode.Column)
|
|
}
|
|
|
|
func (n ValueReference[T]) IsEmpty() bool {
|
|
return n.ValueNode == nil
|
|
}
|
|
|
|
func (n ValueReference[T]) GenerateMapKey() string {
|
|
return fmt.Sprintf("%d:%d", n.ValueNode.Line, n.ValueNode.Column)
|
|
}
|
|
|
|
func (n KeyReference[T]) IsEmpty() bool {
|
|
return n.KeyNode == nil
|
|
}
|
|
|
|
func (n KeyReference[T]) GenerateMapKey() string {
|
|
return fmt.Sprintf("%d:%d", n.KeyNode.Line, n.KeyNode.Column)
|
|
}
|