Files
libopenapi/index/circular_reference_result.go
2023-01-11 05:47:06 -05:00

30 lines
835 B
Go

package index
import "strings"
// CircularReferenceResult contains a circular reference found when traversing the graph.
type CircularReferenceResult struct {
Journey []*Reference
Start *Reference
LoopIndex int
LoopPoint *Reference
IsPolymorphicResult bool // if this result comes from a polymorphic loop.
IsInfiniteLoop bool // if all the definitions in the reference loop are marked as required, this is an infinite circular reference, thus is not allowed.
}
func (c *CircularReferenceResult) GenerateJourneyPath() string {
buf := strings.Builder{}
for i, ref := range c.Journey {
if i > 0 {
buf.WriteString(" -> ")
}
buf.WriteString(ref.Name)
// buf.WriteString(" (")
// buf.WriteString(ref.Definition)
// buf.WriteString(")")
}
return buf.String()
}