package gwp
type GqlNode struct {
ID []byte
Labels []string
Properties map[string]any
}
func (n *GqlNode) HasLabel(label string) bool {
for _, l := range n.Labels {
if l == label {
return true
}
}
return false
}
type GqlEdge struct {
ID []byte
Labels []string
SourceNodeID []byte
TargetNodeID []byte
Undirected bool
Properties map[string]any
}
func (e *GqlEdge) HasLabel(label string) bool {
for _, l := range e.Labels {
if l == label {
return true
}
}
return false
}
type GqlPath struct {
Nodes []*GqlNode
Edges []*GqlEdge
}
func (p *GqlPath) Len() int {
return len(p.Edges)
}
type GqlRecord struct {
Fields []GqlField
}
func (r *GqlRecord) Get(name string) any {
for _, f := range r.Fields {
if f.Name == name {
return f.Value
}
}
return nil
}
type GqlField struct {
Name string
Value any
}
type GqlDate struct {
Year int32
Month uint32
Day uint32
}
type GqlLocalTime struct {
Hour uint32
Minute uint32
Second uint32
Nanosecond uint32
}
type GqlZonedTime struct {
Time GqlLocalTime
OffsetMinutes int32
}
type GqlLocalDateTime struct {
Date GqlDate
Time GqlLocalTime
}
type GqlZonedDateTime struct {
Date GqlDate
Time GqlLocalTime
OffsetMinutes int32
}
type GqlDuration struct {
Months int64
Nanoseconds int64
}