fun findNext()

in graphql-dgs-codegen-core/src/main/kotlin/com/netflix/graphql/dgs/codegen/generators/shared/SharedTypeUtils.kt [48:74]


        fun findNext(
            mappedTypeArg: String,
            startFrom: Int = 0,
        ): GenericSymbolsAhead =
            GenericSymbolsAhead(
                openBracket = OpenBracket(mappedTypeArg, startFrom),
                closeBracket = CloseBracket(mappedTypeArg, startFrom),
                comma = Comma(mappedTypeArg, startFrom),
            )
    }
}

internal data class GenericSymbolsAhead(
    val openBracket: GenericSymbol.OpenBracket,
    val closeBracket: GenericSymbol.CloseBracket,
    val comma: GenericSymbol.Comma,
) {
    fun nextSymbol(): GenericSymbol? = listOf(openBracket, closeBracket, comma).filterNot { it.notFound() }.minByOrNull { it.index }
}

internal class GenericSymbolsAheadIterator(
    private val mappedTypeArg: String,
) : Iterator<GenericSymbolsAhead> {
    private var lastSymbolIndex = -1
    private var currentSymbolIndex = -1

    override fun next(): GenericSymbolsAhead {