func (p *MinQueriesPlanner) WithQueryerFactory(factory *QueryerFactory) QueryPlanner {
	p.Planner.QueryerFactory = factory
	return p
}
WithQueryerFactory returns a version of the planner with the factory set
package gateway
import (
	"errors"
	"fmt"
	"sync"
	"github.com/vektah/gqlparser/v2"
	"github.com/vektah/gqlparser/v2/ast"
	"github.com/nautilus/graphql"
)
type QueryPlanStep struct {
	InsertionPoint []string
	Then           []*QueryPlanStep
	Queryer      graphql.Queryer
	ParentType   string
	ParentID     string
	SelectionSet ast.SelectionSet
	QueryDocument       *ast.QueryDocument
	QueryString         string
	FragmentDefinitions ast.FragmentDefinitionList
	Variables           Set
}
type QueryPlan struct {
	Operation           *ast.OperationDefinition
	RootStep            *QueryPlanStep
	FragmentDefinitions ast.FragmentDefinitionList
	FieldsToScrub       map[string][][]string
}
type newQueryPlanStepPayload struct {
	Plan           *QueryPlan
	Location       string
	SelectionSet   ast.SelectionSet
	ParentType     string
	Parent         *QueryPlanStep
	InsertionPoint []string
	Fragments      ast.FragmentDefinitionList
	Wrapper        ast.SelectionSet
}
type QueryPlanner interface {
	Plan(*PlanningContext) (QueryPlanList, error)
}
type PlannerWithQueryerFactory interface {
	WithQueryerFactory(*QueryerFactory) QueryPlanner
}
type PlannerWithLocationPriorities interface {
	WithLocationPriorities(priorities []string) QueryPlanner
}
type QueryerFactory func(ctx *PlanningContext, url string) graphql.Queryer
type Planner struct {
	QueryerFactory *QueryerFactory
	queryerCache   map[string]graphql.Queryer
}
type MinQueriesPlanner struct {
	Planner
	LocationPriorities []string
}