github.com/matiasanaya/gqlgen@v0.6.0/example/chat/generated.go (about)

     1  // Code generated by github.com/99designs/gqlgen, DO NOT EDIT.
     2  
     3  package chat
     4  
     5  import (
     6  	bytes "bytes"
     7  	context "context"
     8  	strconv "strconv"
     9  	sync "sync"
    10  	time "time"
    11  
    12  	graphql "github.com/99designs/gqlgen/graphql"
    13  	introspection "github.com/99designs/gqlgen/graphql/introspection"
    14  	gqlparser "github.com/vektah/gqlparser"
    15  	ast "github.com/vektah/gqlparser/ast"
    16  )
    17  
    18  // NewExecutableSchema creates an ExecutableSchema from the ResolverRoot interface.
    19  func NewExecutableSchema(cfg Config) graphql.ExecutableSchema {
    20  	return &executableSchema{
    21  		resolvers:  cfg.Resolvers,
    22  		directives: cfg.Directives,
    23  		complexity: cfg.Complexity,
    24  	}
    25  }
    26  
    27  type Config struct {
    28  	Resolvers  ResolverRoot
    29  	Directives DirectiveRoot
    30  	Complexity ComplexityRoot
    31  }
    32  
    33  type ResolverRoot interface {
    34  	Mutation() MutationResolver
    35  	Query() QueryResolver
    36  	Subscription() SubscriptionResolver
    37  }
    38  
    39  type DirectiveRoot struct {
    40  }
    41  
    42  type ComplexityRoot struct {
    43  	Chatroom struct {
    44  		Name     func(childComplexity int) int
    45  		Messages func(childComplexity int) int
    46  	}
    47  
    48  	Message struct {
    49  		Id        func(childComplexity int) int
    50  		Text      func(childComplexity int) int
    51  		CreatedBy func(childComplexity int) int
    52  		CreatedAt func(childComplexity int) int
    53  	}
    54  
    55  	Mutation struct {
    56  		Post func(childComplexity int, text string, username string, roomName string) int
    57  	}
    58  
    59  	Query struct {
    60  		Room func(childComplexity int, name string) int
    61  	}
    62  
    63  	Subscription struct {
    64  		MessageAdded func(childComplexity int, roomName string) int
    65  	}
    66  }
    67  
    68  type MutationResolver interface {
    69  	Post(ctx context.Context, text string, username string, roomName string) (Message, error)
    70  }
    71  type QueryResolver interface {
    72  	Room(ctx context.Context, name string) (*Chatroom, error)
    73  }
    74  type SubscriptionResolver interface {
    75  	MessageAdded(ctx context.Context, roomName string) (<-chan Message, error)
    76  }
    77  
    78  func field_Mutation_post_args(rawArgs map[string]interface{}) (map[string]interface{}, error) {
    79  	args := map[string]interface{}{}
    80  	var arg0 string
    81  	if tmp, ok := rawArgs["text"]; ok {
    82  		var err error
    83  		arg0, err = graphql.UnmarshalString(tmp)
    84  		if err != nil {
    85  			return nil, err
    86  		}
    87  	}
    88  	args["text"] = arg0
    89  	var arg1 string
    90  	if tmp, ok := rawArgs["username"]; ok {
    91  		var err error
    92  		arg1, err = graphql.UnmarshalString(tmp)
    93  		if err != nil {
    94  			return nil, err
    95  		}
    96  	}
    97  	args["username"] = arg1
    98  	var arg2 string
    99  	if tmp, ok := rawArgs["roomName"]; ok {
   100  		var err error
   101  		arg2, err = graphql.UnmarshalString(tmp)
   102  		if err != nil {
   103  			return nil, err
   104  		}
   105  	}
   106  	args["roomName"] = arg2
   107  	return args, nil
   108  
   109  }
   110  
   111  func field_Query_room_args(rawArgs map[string]interface{}) (map[string]interface{}, error) {
   112  	args := map[string]interface{}{}
   113  	var arg0 string
   114  	if tmp, ok := rawArgs["name"]; ok {
   115  		var err error
   116  		arg0, err = graphql.UnmarshalString(tmp)
   117  		if err != nil {
   118  			return nil, err
   119  		}
   120  	}
   121  	args["name"] = arg0
   122  	return args, nil
   123  
   124  }
   125  
   126  func field_Query___type_args(rawArgs map[string]interface{}) (map[string]interface{}, error) {
   127  	args := map[string]interface{}{}
   128  	var arg0 string
   129  	if tmp, ok := rawArgs["name"]; ok {
   130  		var err error
   131  		arg0, err = graphql.UnmarshalString(tmp)
   132  		if err != nil {
   133  			return nil, err
   134  		}
   135  	}
   136  	args["name"] = arg0
   137  	return args, nil
   138  
   139  }
   140  
   141  func field_Subscription_messageAdded_args(rawArgs map[string]interface{}) (map[string]interface{}, error) {
   142  	args := map[string]interface{}{}
   143  	var arg0 string
   144  	if tmp, ok := rawArgs["roomName"]; ok {
   145  		var err error
   146  		arg0, err = graphql.UnmarshalString(tmp)
   147  		if err != nil {
   148  			return nil, err
   149  		}
   150  	}
   151  	args["roomName"] = arg0
   152  	return args, nil
   153  
   154  }
   155  
   156  func field___Type_fields_args(rawArgs map[string]interface{}) (map[string]interface{}, error) {
   157  	args := map[string]interface{}{}
   158  	var arg0 bool
   159  	if tmp, ok := rawArgs["includeDeprecated"]; ok {
   160  		var err error
   161  		arg0, err = graphql.UnmarshalBoolean(tmp)
   162  		if err != nil {
   163  			return nil, err
   164  		}
   165  	}
   166  	args["includeDeprecated"] = arg0
   167  	return args, nil
   168  
   169  }
   170  
   171  func field___Type_enumValues_args(rawArgs map[string]interface{}) (map[string]interface{}, error) {
   172  	args := map[string]interface{}{}
   173  	var arg0 bool
   174  	if tmp, ok := rawArgs["includeDeprecated"]; ok {
   175  		var err error
   176  		arg0, err = graphql.UnmarshalBoolean(tmp)
   177  		if err != nil {
   178  			return nil, err
   179  		}
   180  	}
   181  	args["includeDeprecated"] = arg0
   182  	return args, nil
   183  
   184  }
   185  
   186  type executableSchema struct {
   187  	resolvers  ResolverRoot
   188  	directives DirectiveRoot
   189  	complexity ComplexityRoot
   190  }
   191  
   192  func (e *executableSchema) Schema() *ast.Schema {
   193  	return parsedSchema
   194  }
   195  
   196  func (e *executableSchema) Complexity(typeName, field string, childComplexity int, rawArgs map[string]interface{}) (int, bool) {
   197  	switch typeName + "." + field {
   198  
   199  	case "Chatroom.name":
   200  		if e.complexity.Chatroom.Name == nil {
   201  			break
   202  		}
   203  
   204  		return e.complexity.Chatroom.Name(childComplexity), true
   205  
   206  	case "Chatroom.messages":
   207  		if e.complexity.Chatroom.Messages == nil {
   208  			break
   209  		}
   210  
   211  		return e.complexity.Chatroom.Messages(childComplexity), true
   212  
   213  	case "Message.id":
   214  		if e.complexity.Message.Id == nil {
   215  			break
   216  		}
   217  
   218  		return e.complexity.Message.Id(childComplexity), true
   219  
   220  	case "Message.text":
   221  		if e.complexity.Message.Text == nil {
   222  			break
   223  		}
   224  
   225  		return e.complexity.Message.Text(childComplexity), true
   226  
   227  	case "Message.createdBy":
   228  		if e.complexity.Message.CreatedBy == nil {
   229  			break
   230  		}
   231  
   232  		return e.complexity.Message.CreatedBy(childComplexity), true
   233  
   234  	case "Message.createdAt":
   235  		if e.complexity.Message.CreatedAt == nil {
   236  			break
   237  		}
   238  
   239  		return e.complexity.Message.CreatedAt(childComplexity), true
   240  
   241  	case "Mutation.post":
   242  		if e.complexity.Mutation.Post == nil {
   243  			break
   244  		}
   245  
   246  		args, err := field_Mutation_post_args(rawArgs)
   247  		if err != nil {
   248  			return 0, false
   249  		}
   250  
   251  		return e.complexity.Mutation.Post(childComplexity, args["text"].(string), args["username"].(string), args["roomName"].(string)), true
   252  
   253  	case "Query.room":
   254  		if e.complexity.Query.Room == nil {
   255  			break
   256  		}
   257  
   258  		args, err := field_Query_room_args(rawArgs)
   259  		if err != nil {
   260  			return 0, false
   261  		}
   262  
   263  		return e.complexity.Query.Room(childComplexity, args["name"].(string)), true
   264  
   265  	case "Subscription.messageAdded":
   266  		if e.complexity.Subscription.MessageAdded == nil {
   267  			break
   268  		}
   269  
   270  		args, err := field_Subscription_messageAdded_args(rawArgs)
   271  		if err != nil {
   272  			return 0, false
   273  		}
   274  
   275  		return e.complexity.Subscription.MessageAdded(childComplexity, args["roomName"].(string)), true
   276  
   277  	}
   278  	return 0, false
   279  }
   280  
   281  func (e *executableSchema) Query(ctx context.Context, op *ast.OperationDefinition) *graphql.Response {
   282  	ec := executionContext{graphql.GetRequestContext(ctx), e}
   283  
   284  	buf := ec.RequestMiddleware(ctx, func(ctx context.Context) []byte {
   285  		data := ec._Query(ctx, op.SelectionSet)
   286  		var buf bytes.Buffer
   287  		data.MarshalGQL(&buf)
   288  		return buf.Bytes()
   289  	})
   290  
   291  	return &graphql.Response{
   292  		Data:       buf,
   293  		Errors:     ec.Errors,
   294  		Extensions: ec.Extensions}
   295  }
   296  
   297  func (e *executableSchema) Mutation(ctx context.Context, op *ast.OperationDefinition) *graphql.Response {
   298  	ec := executionContext{graphql.GetRequestContext(ctx), e}
   299  
   300  	buf := ec.RequestMiddleware(ctx, func(ctx context.Context) []byte {
   301  		data := ec._Mutation(ctx, op.SelectionSet)
   302  		var buf bytes.Buffer
   303  		data.MarshalGQL(&buf)
   304  		return buf.Bytes()
   305  	})
   306  
   307  	return &graphql.Response{
   308  		Data:       buf,
   309  		Errors:     ec.Errors,
   310  		Extensions: ec.Extensions,
   311  	}
   312  }
   313  
   314  func (e *executableSchema) Subscription(ctx context.Context, op *ast.OperationDefinition) func() *graphql.Response {
   315  	ec := executionContext{graphql.GetRequestContext(ctx), e}
   316  
   317  	next := ec._Subscription(ctx, op.SelectionSet)
   318  	if ec.Errors != nil {
   319  		return graphql.OneShot(&graphql.Response{Data: []byte("null"), Errors: ec.Errors})
   320  	}
   321  
   322  	var buf bytes.Buffer
   323  	return func() *graphql.Response {
   324  		buf := ec.RequestMiddleware(ctx, func(ctx context.Context) []byte {
   325  			buf.Reset()
   326  			data := next()
   327  
   328  			if data == nil {
   329  				return nil
   330  			}
   331  			data.MarshalGQL(&buf)
   332  			return buf.Bytes()
   333  		})
   334  
   335  		if buf == nil {
   336  			return nil
   337  		}
   338  
   339  		return &graphql.Response{
   340  			Data:       buf,
   341  			Errors:     ec.Errors,
   342  			Extensions: ec.Extensions,
   343  		}
   344  	}
   345  }
   346  
   347  type executionContext struct {
   348  	*graphql.RequestContext
   349  	*executableSchema
   350  }
   351  
   352  var chatroomImplementors = []string{"Chatroom"}
   353  
   354  // nolint: gocyclo, errcheck, gas, goconst
   355  func (ec *executionContext) _Chatroom(ctx context.Context, sel ast.SelectionSet, obj *Chatroom) graphql.Marshaler {
   356  	fields := graphql.CollectFields(ctx, sel, chatroomImplementors)
   357  
   358  	out := graphql.NewOrderedMap(len(fields))
   359  	invalid := false
   360  	for i, field := range fields {
   361  		out.Keys[i] = field.Alias
   362  
   363  		switch field.Name {
   364  		case "__typename":
   365  			out.Values[i] = graphql.MarshalString("Chatroom")
   366  		case "name":
   367  			out.Values[i] = ec._Chatroom_name(ctx, field, obj)
   368  			if out.Values[i] == graphql.Null {
   369  				invalid = true
   370  			}
   371  		case "messages":
   372  			out.Values[i] = ec._Chatroom_messages(ctx, field, obj)
   373  			if out.Values[i] == graphql.Null {
   374  				invalid = true
   375  			}
   376  		default:
   377  			panic("unknown field " + strconv.Quote(field.Name))
   378  		}
   379  	}
   380  
   381  	if invalid {
   382  		return graphql.Null
   383  	}
   384  	return out
   385  }
   386  
   387  // nolint: vetshadow
   388  func (ec *executionContext) _Chatroom_name(ctx context.Context, field graphql.CollectedField, obj *Chatroom) graphql.Marshaler {
   389  	rctx := &graphql.ResolverContext{
   390  		Object: "Chatroom",
   391  		Args:   nil,
   392  		Field:  field,
   393  	}
   394  	ctx = graphql.WithResolverContext(ctx, rctx)
   395  	resTmp := ec.FieldMiddleware(ctx, obj, func(rctx context.Context) (interface{}, error) {
   396  		ctx = rctx // use context from middleware stack in children
   397  		return obj.Name, nil
   398  	})
   399  	if resTmp == nil {
   400  		if !ec.HasError(rctx) {
   401  			ec.Errorf(ctx, "must not be null")
   402  		}
   403  		return graphql.Null
   404  	}
   405  	res := resTmp.(string)
   406  	rctx.Result = res
   407  	return graphql.MarshalString(res)
   408  }
   409  
   410  // nolint: vetshadow
   411  func (ec *executionContext) _Chatroom_messages(ctx context.Context, field graphql.CollectedField, obj *Chatroom) graphql.Marshaler {
   412  	rctx := &graphql.ResolverContext{
   413  		Object: "Chatroom",
   414  		Args:   nil,
   415  		Field:  field,
   416  	}
   417  	ctx = graphql.WithResolverContext(ctx, rctx)
   418  	resTmp := ec.FieldMiddleware(ctx, obj, func(rctx context.Context) (interface{}, error) {
   419  		ctx = rctx // use context from middleware stack in children
   420  		return obj.Messages, nil
   421  	})
   422  	if resTmp == nil {
   423  		if !ec.HasError(rctx) {
   424  			ec.Errorf(ctx, "must not be null")
   425  		}
   426  		return graphql.Null
   427  	}
   428  	res := resTmp.([]Message)
   429  	rctx.Result = res
   430  
   431  	arr1 := make(graphql.Array, len(res))
   432  	var wg sync.WaitGroup
   433  
   434  	isLen1 := len(res) == 1
   435  	if !isLen1 {
   436  		wg.Add(len(res))
   437  	}
   438  
   439  	for idx1 := range res {
   440  		idx1 := idx1
   441  		rctx := &graphql.ResolverContext{
   442  			Index:  &idx1,
   443  			Result: &res[idx1],
   444  		}
   445  		ctx := graphql.WithResolverContext(ctx, rctx)
   446  		f := func(idx1 int) {
   447  			if !isLen1 {
   448  				defer wg.Done()
   449  			}
   450  			arr1[idx1] = func() graphql.Marshaler {
   451  
   452  				return ec._Message(ctx, field.Selections, &res[idx1])
   453  			}()
   454  		}
   455  		if isLen1 {
   456  			f(idx1)
   457  		} else {
   458  			go f(idx1)
   459  		}
   460  
   461  	}
   462  	wg.Wait()
   463  	return arr1
   464  }
   465  
   466  var messageImplementors = []string{"Message"}
   467  
   468  // nolint: gocyclo, errcheck, gas, goconst
   469  func (ec *executionContext) _Message(ctx context.Context, sel ast.SelectionSet, obj *Message) graphql.Marshaler {
   470  	fields := graphql.CollectFields(ctx, sel, messageImplementors)
   471  
   472  	out := graphql.NewOrderedMap(len(fields))
   473  	invalid := false
   474  	for i, field := range fields {
   475  		out.Keys[i] = field.Alias
   476  
   477  		switch field.Name {
   478  		case "__typename":
   479  			out.Values[i] = graphql.MarshalString("Message")
   480  		case "id":
   481  			out.Values[i] = ec._Message_id(ctx, field, obj)
   482  			if out.Values[i] == graphql.Null {
   483  				invalid = true
   484  			}
   485  		case "text":
   486  			out.Values[i] = ec._Message_text(ctx, field, obj)
   487  			if out.Values[i] == graphql.Null {
   488  				invalid = true
   489  			}
   490  		case "createdBy":
   491  			out.Values[i] = ec._Message_createdBy(ctx, field, obj)
   492  			if out.Values[i] == graphql.Null {
   493  				invalid = true
   494  			}
   495  		case "createdAt":
   496  			out.Values[i] = ec._Message_createdAt(ctx, field, obj)
   497  			if out.Values[i] == graphql.Null {
   498  				invalid = true
   499  			}
   500  		default:
   501  			panic("unknown field " + strconv.Quote(field.Name))
   502  		}
   503  	}
   504  
   505  	if invalid {
   506  		return graphql.Null
   507  	}
   508  	return out
   509  }
   510  
   511  // nolint: vetshadow
   512  func (ec *executionContext) _Message_id(ctx context.Context, field graphql.CollectedField, obj *Message) graphql.Marshaler {
   513  	rctx := &graphql.ResolverContext{
   514  		Object: "Message",
   515  		Args:   nil,
   516  		Field:  field,
   517  	}
   518  	ctx = graphql.WithResolverContext(ctx, rctx)
   519  	resTmp := ec.FieldMiddleware(ctx, obj, func(rctx context.Context) (interface{}, error) {
   520  		ctx = rctx // use context from middleware stack in children
   521  		return obj.ID, nil
   522  	})
   523  	if resTmp == nil {
   524  		if !ec.HasError(rctx) {
   525  			ec.Errorf(ctx, "must not be null")
   526  		}
   527  		return graphql.Null
   528  	}
   529  	res := resTmp.(string)
   530  	rctx.Result = res
   531  	return graphql.MarshalID(res)
   532  }
   533  
   534  // nolint: vetshadow
   535  func (ec *executionContext) _Message_text(ctx context.Context, field graphql.CollectedField, obj *Message) graphql.Marshaler {
   536  	rctx := &graphql.ResolverContext{
   537  		Object: "Message",
   538  		Args:   nil,
   539  		Field:  field,
   540  	}
   541  	ctx = graphql.WithResolverContext(ctx, rctx)
   542  	resTmp := ec.FieldMiddleware(ctx, obj, func(rctx context.Context) (interface{}, error) {
   543  		ctx = rctx // use context from middleware stack in children
   544  		return obj.Text, nil
   545  	})
   546  	if resTmp == nil {
   547  		if !ec.HasError(rctx) {
   548  			ec.Errorf(ctx, "must not be null")
   549  		}
   550  		return graphql.Null
   551  	}
   552  	res := resTmp.(string)
   553  	rctx.Result = res
   554  	return graphql.MarshalString(res)
   555  }
   556  
   557  // nolint: vetshadow
   558  func (ec *executionContext) _Message_createdBy(ctx context.Context, field graphql.CollectedField, obj *Message) graphql.Marshaler {
   559  	rctx := &graphql.ResolverContext{
   560  		Object: "Message",
   561  		Args:   nil,
   562  		Field:  field,
   563  	}
   564  	ctx = graphql.WithResolverContext(ctx, rctx)
   565  	resTmp := ec.FieldMiddleware(ctx, obj, func(rctx context.Context) (interface{}, error) {
   566  		ctx = rctx // use context from middleware stack in children
   567  		return obj.CreatedBy, nil
   568  	})
   569  	if resTmp == nil {
   570  		if !ec.HasError(rctx) {
   571  			ec.Errorf(ctx, "must not be null")
   572  		}
   573  		return graphql.Null
   574  	}
   575  	res := resTmp.(string)
   576  	rctx.Result = res
   577  	return graphql.MarshalString(res)
   578  }
   579  
   580  // nolint: vetshadow
   581  func (ec *executionContext) _Message_createdAt(ctx context.Context, field graphql.CollectedField, obj *Message) graphql.Marshaler {
   582  	rctx := &graphql.ResolverContext{
   583  		Object: "Message",
   584  		Args:   nil,
   585  		Field:  field,
   586  	}
   587  	ctx = graphql.WithResolverContext(ctx, rctx)
   588  	resTmp := ec.FieldMiddleware(ctx, obj, func(rctx context.Context) (interface{}, error) {
   589  		ctx = rctx // use context from middleware stack in children
   590  		return obj.CreatedAt, nil
   591  	})
   592  	if resTmp == nil {
   593  		if !ec.HasError(rctx) {
   594  			ec.Errorf(ctx, "must not be null")
   595  		}
   596  		return graphql.Null
   597  	}
   598  	res := resTmp.(time.Time)
   599  	rctx.Result = res
   600  	return graphql.MarshalTime(res)
   601  }
   602  
   603  var mutationImplementors = []string{"Mutation"}
   604  
   605  // nolint: gocyclo, errcheck, gas, goconst
   606  func (ec *executionContext) _Mutation(ctx context.Context, sel ast.SelectionSet) graphql.Marshaler {
   607  	fields := graphql.CollectFields(ctx, sel, mutationImplementors)
   608  
   609  	ctx = graphql.WithResolverContext(ctx, &graphql.ResolverContext{
   610  		Object: "Mutation",
   611  	})
   612  
   613  	out := graphql.NewOrderedMap(len(fields))
   614  	invalid := false
   615  	for i, field := range fields {
   616  		out.Keys[i] = field.Alias
   617  
   618  		switch field.Name {
   619  		case "__typename":
   620  			out.Values[i] = graphql.MarshalString("Mutation")
   621  		case "post":
   622  			out.Values[i] = ec._Mutation_post(ctx, field)
   623  			if out.Values[i] == graphql.Null {
   624  				invalid = true
   625  			}
   626  		default:
   627  			panic("unknown field " + strconv.Quote(field.Name))
   628  		}
   629  	}
   630  
   631  	if invalid {
   632  		return graphql.Null
   633  	}
   634  	return out
   635  }
   636  
   637  // nolint: vetshadow
   638  func (ec *executionContext) _Mutation_post(ctx context.Context, field graphql.CollectedField) graphql.Marshaler {
   639  	rawArgs := field.ArgumentMap(ec.Variables)
   640  	args, err := field_Mutation_post_args(rawArgs)
   641  	if err != nil {
   642  		ec.Error(ctx, err)
   643  		return graphql.Null
   644  	}
   645  	rctx := &graphql.ResolverContext{
   646  		Object: "Mutation",
   647  		Args:   args,
   648  		Field:  field,
   649  	}
   650  	ctx = graphql.WithResolverContext(ctx, rctx)
   651  	resTmp := ec.FieldMiddleware(ctx, nil, func(rctx context.Context) (interface{}, error) {
   652  		ctx = rctx // use context from middleware stack in children
   653  		return ec.resolvers.Mutation().Post(rctx, args["text"].(string), args["username"].(string), args["roomName"].(string))
   654  	})
   655  	if resTmp == nil {
   656  		if !ec.HasError(rctx) {
   657  			ec.Errorf(ctx, "must not be null")
   658  		}
   659  		return graphql.Null
   660  	}
   661  	res := resTmp.(Message)
   662  	rctx.Result = res
   663  
   664  	return ec._Message(ctx, field.Selections, &res)
   665  }
   666  
   667  var queryImplementors = []string{"Query"}
   668  
   669  // nolint: gocyclo, errcheck, gas, goconst
   670  func (ec *executionContext) _Query(ctx context.Context, sel ast.SelectionSet) graphql.Marshaler {
   671  	fields := graphql.CollectFields(ctx, sel, queryImplementors)
   672  
   673  	ctx = graphql.WithResolverContext(ctx, &graphql.ResolverContext{
   674  		Object: "Query",
   675  	})
   676  
   677  	var wg sync.WaitGroup
   678  	out := graphql.NewOrderedMap(len(fields))
   679  	invalid := false
   680  	for i, field := range fields {
   681  		out.Keys[i] = field.Alias
   682  
   683  		switch field.Name {
   684  		case "__typename":
   685  			out.Values[i] = graphql.MarshalString("Query")
   686  		case "room":
   687  			wg.Add(1)
   688  			go func(i int, field graphql.CollectedField) {
   689  				out.Values[i] = ec._Query_room(ctx, field)
   690  				wg.Done()
   691  			}(i, field)
   692  		case "__type":
   693  			out.Values[i] = ec._Query___type(ctx, field)
   694  		case "__schema":
   695  			out.Values[i] = ec._Query___schema(ctx, field)
   696  		default:
   697  			panic("unknown field " + strconv.Quote(field.Name))
   698  		}
   699  	}
   700  	wg.Wait()
   701  	if invalid {
   702  		return graphql.Null
   703  	}
   704  	return out
   705  }
   706  
   707  // nolint: vetshadow
   708  func (ec *executionContext) _Query_room(ctx context.Context, field graphql.CollectedField) graphql.Marshaler {
   709  	rawArgs := field.ArgumentMap(ec.Variables)
   710  	args, err := field_Query_room_args(rawArgs)
   711  	if err != nil {
   712  		ec.Error(ctx, err)
   713  		return graphql.Null
   714  	}
   715  	rctx := &graphql.ResolverContext{
   716  		Object: "Query",
   717  		Args:   args,
   718  		Field:  field,
   719  	}
   720  	ctx = graphql.WithResolverContext(ctx, rctx)
   721  	resTmp := ec.FieldMiddleware(ctx, nil, func(rctx context.Context) (interface{}, error) {
   722  		ctx = rctx // use context from middleware stack in children
   723  		return ec.resolvers.Query().Room(rctx, args["name"].(string))
   724  	})
   725  	if resTmp == nil {
   726  		return graphql.Null
   727  	}
   728  	res := resTmp.(*Chatroom)
   729  	rctx.Result = res
   730  
   731  	if res == nil {
   732  		return graphql.Null
   733  	}
   734  
   735  	return ec._Chatroom(ctx, field.Selections, res)
   736  }
   737  
   738  // nolint: vetshadow
   739  func (ec *executionContext) _Query___type(ctx context.Context, field graphql.CollectedField) graphql.Marshaler {
   740  	rawArgs := field.ArgumentMap(ec.Variables)
   741  	args, err := field_Query___type_args(rawArgs)
   742  	if err != nil {
   743  		ec.Error(ctx, err)
   744  		return graphql.Null
   745  	}
   746  	rctx := &graphql.ResolverContext{
   747  		Object: "Query",
   748  		Args:   args,
   749  		Field:  field,
   750  	}
   751  	ctx = graphql.WithResolverContext(ctx, rctx)
   752  	resTmp := ec.FieldMiddleware(ctx, nil, func(rctx context.Context) (interface{}, error) {
   753  		ctx = rctx // use context from middleware stack in children
   754  		return ec.introspectType(args["name"].(string)), nil
   755  	})
   756  	if resTmp == nil {
   757  		return graphql.Null
   758  	}
   759  	res := resTmp.(*introspection.Type)
   760  	rctx.Result = res
   761  
   762  	if res == nil {
   763  		return graphql.Null
   764  	}
   765  
   766  	return ec.___Type(ctx, field.Selections, res)
   767  }
   768  
   769  // nolint: vetshadow
   770  func (ec *executionContext) _Query___schema(ctx context.Context, field graphql.CollectedField) graphql.Marshaler {
   771  	rctx := &graphql.ResolverContext{
   772  		Object: "Query",
   773  		Args:   nil,
   774  		Field:  field,
   775  	}
   776  	ctx = graphql.WithResolverContext(ctx, rctx)
   777  	resTmp := ec.FieldMiddleware(ctx, nil, func(rctx context.Context) (interface{}, error) {
   778  		ctx = rctx // use context from middleware stack in children
   779  		return ec.introspectSchema(), nil
   780  	})
   781  	if resTmp == nil {
   782  		return graphql.Null
   783  	}
   784  	res := resTmp.(*introspection.Schema)
   785  	rctx.Result = res
   786  
   787  	if res == nil {
   788  		return graphql.Null
   789  	}
   790  
   791  	return ec.___Schema(ctx, field.Selections, res)
   792  }
   793  
   794  var subscriptionImplementors = []string{"Subscription"}
   795  
   796  // nolint: gocyclo, errcheck, gas, goconst
   797  func (ec *executionContext) _Subscription(ctx context.Context, sel ast.SelectionSet) func() graphql.Marshaler {
   798  	fields := graphql.CollectFields(ctx, sel, subscriptionImplementors)
   799  	ctx = graphql.WithResolverContext(ctx, &graphql.ResolverContext{
   800  		Object: "Subscription",
   801  	})
   802  	if len(fields) != 1 {
   803  		ec.Errorf(ctx, "must subscribe to exactly one stream")
   804  		return nil
   805  	}
   806  
   807  	switch fields[0].Name {
   808  	case "messageAdded":
   809  		return ec._Subscription_messageAdded(ctx, fields[0])
   810  	default:
   811  		panic("unknown field " + strconv.Quote(fields[0].Name))
   812  	}
   813  }
   814  
   815  func (ec *executionContext) _Subscription_messageAdded(ctx context.Context, field graphql.CollectedField) func() graphql.Marshaler {
   816  	rawArgs := field.ArgumentMap(ec.Variables)
   817  	args, err := field_Subscription_messageAdded_args(rawArgs)
   818  	if err != nil {
   819  		ec.Error(ctx, err)
   820  		return nil
   821  	}
   822  	ctx = graphql.WithResolverContext(ctx, &graphql.ResolverContext{
   823  		Field: field,
   824  	})
   825  	rctx := ctx // FIXME: subscriptions are missing request middleware stack https://github.com/99designs/gqlgen/issues/259
   826  	results, err := ec.resolvers.Subscription().MessageAdded(rctx, args["roomName"].(string))
   827  	if err != nil {
   828  		ec.Error(ctx, err)
   829  		return nil
   830  	}
   831  	return func() graphql.Marshaler {
   832  		res, ok := <-results
   833  		if !ok {
   834  			return nil
   835  		}
   836  		var out graphql.OrderedMap
   837  		out.Add(field.Alias, func() graphql.Marshaler {
   838  			return ec._Message(ctx, field.Selections, &res)
   839  		}())
   840  		return &out
   841  	}
   842  }
   843  
   844  var __DirectiveImplementors = []string{"__Directive"}
   845  
   846  // nolint: gocyclo, errcheck, gas, goconst
   847  func (ec *executionContext) ___Directive(ctx context.Context, sel ast.SelectionSet, obj *introspection.Directive) graphql.Marshaler {
   848  	fields := graphql.CollectFields(ctx, sel, __DirectiveImplementors)
   849  
   850  	out := graphql.NewOrderedMap(len(fields))
   851  	invalid := false
   852  	for i, field := range fields {
   853  		out.Keys[i] = field.Alias
   854  
   855  		switch field.Name {
   856  		case "__typename":
   857  			out.Values[i] = graphql.MarshalString("__Directive")
   858  		case "name":
   859  			out.Values[i] = ec.___Directive_name(ctx, field, obj)
   860  			if out.Values[i] == graphql.Null {
   861  				invalid = true
   862  			}
   863  		case "description":
   864  			out.Values[i] = ec.___Directive_description(ctx, field, obj)
   865  		case "locations":
   866  			out.Values[i] = ec.___Directive_locations(ctx, field, obj)
   867  			if out.Values[i] == graphql.Null {
   868  				invalid = true
   869  			}
   870  		case "args":
   871  			out.Values[i] = ec.___Directive_args(ctx, field, obj)
   872  			if out.Values[i] == graphql.Null {
   873  				invalid = true
   874  			}
   875  		default:
   876  			panic("unknown field " + strconv.Quote(field.Name))
   877  		}
   878  	}
   879  
   880  	if invalid {
   881  		return graphql.Null
   882  	}
   883  	return out
   884  }
   885  
   886  // nolint: vetshadow
   887  func (ec *executionContext) ___Directive_name(ctx context.Context, field graphql.CollectedField, obj *introspection.Directive) graphql.Marshaler {
   888  	rctx := &graphql.ResolverContext{
   889  		Object: "__Directive",
   890  		Args:   nil,
   891  		Field:  field,
   892  	}
   893  	ctx = graphql.WithResolverContext(ctx, rctx)
   894  	resTmp := ec.FieldMiddleware(ctx, obj, func(rctx context.Context) (interface{}, error) {
   895  		ctx = rctx // use context from middleware stack in children
   896  		return obj.Name, nil
   897  	})
   898  	if resTmp == nil {
   899  		if !ec.HasError(rctx) {
   900  			ec.Errorf(ctx, "must not be null")
   901  		}
   902  		return graphql.Null
   903  	}
   904  	res := resTmp.(string)
   905  	rctx.Result = res
   906  	return graphql.MarshalString(res)
   907  }
   908  
   909  // nolint: vetshadow
   910  func (ec *executionContext) ___Directive_description(ctx context.Context, field graphql.CollectedField, obj *introspection.Directive) graphql.Marshaler {
   911  	rctx := &graphql.ResolverContext{
   912  		Object: "__Directive",
   913  		Args:   nil,
   914  		Field:  field,
   915  	}
   916  	ctx = graphql.WithResolverContext(ctx, rctx)
   917  	resTmp := ec.FieldMiddleware(ctx, obj, func(rctx context.Context) (interface{}, error) {
   918  		ctx = rctx // use context from middleware stack in children
   919  		return obj.Description, nil
   920  	})
   921  	if resTmp == nil {
   922  		return graphql.Null
   923  	}
   924  	res := resTmp.(string)
   925  	rctx.Result = res
   926  	return graphql.MarshalString(res)
   927  }
   928  
   929  // nolint: vetshadow
   930  func (ec *executionContext) ___Directive_locations(ctx context.Context, field graphql.CollectedField, obj *introspection.Directive) graphql.Marshaler {
   931  	rctx := &graphql.ResolverContext{
   932  		Object: "__Directive",
   933  		Args:   nil,
   934  		Field:  field,
   935  	}
   936  	ctx = graphql.WithResolverContext(ctx, rctx)
   937  	resTmp := ec.FieldMiddleware(ctx, obj, func(rctx context.Context) (interface{}, error) {
   938  		ctx = rctx // use context from middleware stack in children
   939  		return obj.Locations, nil
   940  	})
   941  	if resTmp == nil {
   942  		if !ec.HasError(rctx) {
   943  			ec.Errorf(ctx, "must not be null")
   944  		}
   945  		return graphql.Null
   946  	}
   947  	res := resTmp.([]string)
   948  	rctx.Result = res
   949  
   950  	arr1 := make(graphql.Array, len(res))
   951  
   952  	for idx1 := range res {
   953  		arr1[idx1] = func() graphql.Marshaler {
   954  			return graphql.MarshalString(res[idx1])
   955  		}()
   956  	}
   957  
   958  	return arr1
   959  }
   960  
   961  // nolint: vetshadow
   962  func (ec *executionContext) ___Directive_args(ctx context.Context, field graphql.CollectedField, obj *introspection.Directive) graphql.Marshaler {
   963  	rctx := &graphql.ResolverContext{
   964  		Object: "__Directive",
   965  		Args:   nil,
   966  		Field:  field,
   967  	}
   968  	ctx = graphql.WithResolverContext(ctx, rctx)
   969  	resTmp := ec.FieldMiddleware(ctx, obj, func(rctx context.Context) (interface{}, error) {
   970  		ctx = rctx // use context from middleware stack in children
   971  		return obj.Args, nil
   972  	})
   973  	if resTmp == nil {
   974  		if !ec.HasError(rctx) {
   975  			ec.Errorf(ctx, "must not be null")
   976  		}
   977  		return graphql.Null
   978  	}
   979  	res := resTmp.([]introspection.InputValue)
   980  	rctx.Result = res
   981  
   982  	arr1 := make(graphql.Array, len(res))
   983  	var wg sync.WaitGroup
   984  
   985  	isLen1 := len(res) == 1
   986  	if !isLen1 {
   987  		wg.Add(len(res))
   988  	}
   989  
   990  	for idx1 := range res {
   991  		idx1 := idx1
   992  		rctx := &graphql.ResolverContext{
   993  			Index:  &idx1,
   994  			Result: &res[idx1],
   995  		}
   996  		ctx := graphql.WithResolverContext(ctx, rctx)
   997  		f := func(idx1 int) {
   998  			if !isLen1 {
   999  				defer wg.Done()
  1000  			}
  1001  			arr1[idx1] = func() graphql.Marshaler {
  1002  
  1003  				return ec.___InputValue(ctx, field.Selections, &res[idx1])
  1004  			}()
  1005  		}
  1006  		if isLen1 {
  1007  			f(idx1)
  1008  		} else {
  1009  			go f(idx1)
  1010  		}
  1011  
  1012  	}
  1013  	wg.Wait()
  1014  	return arr1
  1015  }
  1016  
  1017  var __EnumValueImplementors = []string{"__EnumValue"}
  1018  
  1019  // nolint: gocyclo, errcheck, gas, goconst
  1020  func (ec *executionContext) ___EnumValue(ctx context.Context, sel ast.SelectionSet, obj *introspection.EnumValue) graphql.Marshaler {
  1021  	fields := graphql.CollectFields(ctx, sel, __EnumValueImplementors)
  1022  
  1023  	out := graphql.NewOrderedMap(len(fields))
  1024  	invalid := false
  1025  	for i, field := range fields {
  1026  		out.Keys[i] = field.Alias
  1027  
  1028  		switch field.Name {
  1029  		case "__typename":
  1030  			out.Values[i] = graphql.MarshalString("__EnumValue")
  1031  		case "name":
  1032  			out.Values[i] = ec.___EnumValue_name(ctx, field, obj)
  1033  			if out.Values[i] == graphql.Null {
  1034  				invalid = true
  1035  			}
  1036  		case "description":
  1037  			out.Values[i] = ec.___EnumValue_description(ctx, field, obj)
  1038  		case "isDeprecated":
  1039  			out.Values[i] = ec.___EnumValue_isDeprecated(ctx, field, obj)
  1040  			if out.Values[i] == graphql.Null {
  1041  				invalid = true
  1042  			}
  1043  		case "deprecationReason":
  1044  			out.Values[i] = ec.___EnumValue_deprecationReason(ctx, field, obj)
  1045  		default:
  1046  			panic("unknown field " + strconv.Quote(field.Name))
  1047  		}
  1048  	}
  1049  
  1050  	if invalid {
  1051  		return graphql.Null
  1052  	}
  1053  	return out
  1054  }
  1055  
  1056  // nolint: vetshadow
  1057  func (ec *executionContext) ___EnumValue_name(ctx context.Context, field graphql.CollectedField, obj *introspection.EnumValue) graphql.Marshaler {
  1058  	rctx := &graphql.ResolverContext{
  1059  		Object: "__EnumValue",
  1060  		Args:   nil,
  1061  		Field:  field,
  1062  	}
  1063  	ctx = graphql.WithResolverContext(ctx, rctx)
  1064  	resTmp := ec.FieldMiddleware(ctx, obj, func(rctx context.Context) (interface{}, error) {
  1065  		ctx = rctx // use context from middleware stack in children
  1066  		return obj.Name, nil
  1067  	})
  1068  	if resTmp == nil {
  1069  		if !ec.HasError(rctx) {
  1070  			ec.Errorf(ctx, "must not be null")
  1071  		}
  1072  		return graphql.Null
  1073  	}
  1074  	res := resTmp.(string)
  1075  	rctx.Result = res
  1076  	return graphql.MarshalString(res)
  1077  }
  1078  
  1079  // nolint: vetshadow
  1080  func (ec *executionContext) ___EnumValue_description(ctx context.Context, field graphql.CollectedField, obj *introspection.EnumValue) graphql.Marshaler {
  1081  	rctx := &graphql.ResolverContext{
  1082  		Object: "__EnumValue",
  1083  		Args:   nil,
  1084  		Field:  field,
  1085  	}
  1086  	ctx = graphql.WithResolverContext(ctx, rctx)
  1087  	resTmp := ec.FieldMiddleware(ctx, obj, func(rctx context.Context) (interface{}, error) {
  1088  		ctx = rctx // use context from middleware stack in children
  1089  		return obj.Description, nil
  1090  	})
  1091  	if resTmp == nil {
  1092  		return graphql.Null
  1093  	}
  1094  	res := resTmp.(string)
  1095  	rctx.Result = res
  1096  	return graphql.MarshalString(res)
  1097  }
  1098  
  1099  // nolint: vetshadow
  1100  func (ec *executionContext) ___EnumValue_isDeprecated(ctx context.Context, field graphql.CollectedField, obj *introspection.EnumValue) graphql.Marshaler {
  1101  	rctx := &graphql.ResolverContext{
  1102  		Object: "__EnumValue",
  1103  		Args:   nil,
  1104  		Field:  field,
  1105  	}
  1106  	ctx = graphql.WithResolverContext(ctx, rctx)
  1107  	resTmp := ec.FieldMiddleware(ctx, obj, func(rctx context.Context) (interface{}, error) {
  1108  		ctx = rctx // use context from middleware stack in children
  1109  		return obj.IsDeprecated, nil
  1110  	})
  1111  	if resTmp == nil {
  1112  		if !ec.HasError(rctx) {
  1113  			ec.Errorf(ctx, "must not be null")
  1114  		}
  1115  		return graphql.Null
  1116  	}
  1117  	res := resTmp.(bool)
  1118  	rctx.Result = res
  1119  	return graphql.MarshalBoolean(res)
  1120  }
  1121  
  1122  // nolint: vetshadow
  1123  func (ec *executionContext) ___EnumValue_deprecationReason(ctx context.Context, field graphql.CollectedField, obj *introspection.EnumValue) graphql.Marshaler {
  1124  	rctx := &graphql.ResolverContext{
  1125  		Object: "__EnumValue",
  1126  		Args:   nil,
  1127  		Field:  field,
  1128  	}
  1129  	ctx = graphql.WithResolverContext(ctx, rctx)
  1130  	resTmp := ec.FieldMiddleware(ctx, obj, func(rctx context.Context) (interface{}, error) {
  1131  		ctx = rctx // use context from middleware stack in children
  1132  		return obj.DeprecationReason, nil
  1133  	})
  1134  	if resTmp == nil {
  1135  		return graphql.Null
  1136  	}
  1137  	res := resTmp.(string)
  1138  	rctx.Result = res
  1139  	return graphql.MarshalString(res)
  1140  }
  1141  
  1142  var __FieldImplementors = []string{"__Field"}
  1143  
  1144  // nolint: gocyclo, errcheck, gas, goconst
  1145  func (ec *executionContext) ___Field(ctx context.Context, sel ast.SelectionSet, obj *introspection.Field) graphql.Marshaler {
  1146  	fields := graphql.CollectFields(ctx, sel, __FieldImplementors)
  1147  
  1148  	out := graphql.NewOrderedMap(len(fields))
  1149  	invalid := false
  1150  	for i, field := range fields {
  1151  		out.Keys[i] = field.Alias
  1152  
  1153  		switch field.Name {
  1154  		case "__typename":
  1155  			out.Values[i] = graphql.MarshalString("__Field")
  1156  		case "name":
  1157  			out.Values[i] = ec.___Field_name(ctx, field, obj)
  1158  			if out.Values[i] == graphql.Null {
  1159  				invalid = true
  1160  			}
  1161  		case "description":
  1162  			out.Values[i] = ec.___Field_description(ctx, field, obj)
  1163  		case "args":
  1164  			out.Values[i] = ec.___Field_args(ctx, field, obj)
  1165  			if out.Values[i] == graphql.Null {
  1166  				invalid = true
  1167  			}
  1168  		case "type":
  1169  			out.Values[i] = ec.___Field_type(ctx, field, obj)
  1170  			if out.Values[i] == graphql.Null {
  1171  				invalid = true
  1172  			}
  1173  		case "isDeprecated":
  1174  			out.Values[i] = ec.___Field_isDeprecated(ctx, field, obj)
  1175  			if out.Values[i] == graphql.Null {
  1176  				invalid = true
  1177  			}
  1178  		case "deprecationReason":
  1179  			out.Values[i] = ec.___Field_deprecationReason(ctx, field, obj)
  1180  		default:
  1181  			panic("unknown field " + strconv.Quote(field.Name))
  1182  		}
  1183  	}
  1184  
  1185  	if invalid {
  1186  		return graphql.Null
  1187  	}
  1188  	return out
  1189  }
  1190  
  1191  // nolint: vetshadow
  1192  func (ec *executionContext) ___Field_name(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) graphql.Marshaler {
  1193  	rctx := &graphql.ResolverContext{
  1194  		Object: "__Field",
  1195  		Args:   nil,
  1196  		Field:  field,
  1197  	}
  1198  	ctx = graphql.WithResolverContext(ctx, rctx)
  1199  	resTmp := ec.FieldMiddleware(ctx, obj, func(rctx context.Context) (interface{}, error) {
  1200  		ctx = rctx // use context from middleware stack in children
  1201  		return obj.Name, nil
  1202  	})
  1203  	if resTmp == nil {
  1204  		if !ec.HasError(rctx) {
  1205  			ec.Errorf(ctx, "must not be null")
  1206  		}
  1207  		return graphql.Null
  1208  	}
  1209  	res := resTmp.(string)
  1210  	rctx.Result = res
  1211  	return graphql.MarshalString(res)
  1212  }
  1213  
  1214  // nolint: vetshadow
  1215  func (ec *executionContext) ___Field_description(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) graphql.Marshaler {
  1216  	rctx := &graphql.ResolverContext{
  1217  		Object: "__Field",
  1218  		Args:   nil,
  1219  		Field:  field,
  1220  	}
  1221  	ctx = graphql.WithResolverContext(ctx, rctx)
  1222  	resTmp := ec.FieldMiddleware(ctx, obj, func(rctx context.Context) (interface{}, error) {
  1223  		ctx = rctx // use context from middleware stack in children
  1224  		return obj.Description, nil
  1225  	})
  1226  	if resTmp == nil {
  1227  		return graphql.Null
  1228  	}
  1229  	res := resTmp.(string)
  1230  	rctx.Result = res
  1231  	return graphql.MarshalString(res)
  1232  }
  1233  
  1234  // nolint: vetshadow
  1235  func (ec *executionContext) ___Field_args(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) graphql.Marshaler {
  1236  	rctx := &graphql.ResolverContext{
  1237  		Object: "__Field",
  1238  		Args:   nil,
  1239  		Field:  field,
  1240  	}
  1241  	ctx = graphql.WithResolverContext(ctx, rctx)
  1242  	resTmp := ec.FieldMiddleware(ctx, obj, func(rctx context.Context) (interface{}, error) {
  1243  		ctx = rctx // use context from middleware stack in children
  1244  		return obj.Args, nil
  1245  	})
  1246  	if resTmp == nil {
  1247  		if !ec.HasError(rctx) {
  1248  			ec.Errorf(ctx, "must not be null")
  1249  		}
  1250  		return graphql.Null
  1251  	}
  1252  	res := resTmp.([]introspection.InputValue)
  1253  	rctx.Result = res
  1254  
  1255  	arr1 := make(graphql.Array, len(res))
  1256  	var wg sync.WaitGroup
  1257  
  1258  	isLen1 := len(res) == 1
  1259  	if !isLen1 {
  1260  		wg.Add(len(res))
  1261  	}
  1262  
  1263  	for idx1 := range res {
  1264  		idx1 := idx1
  1265  		rctx := &graphql.ResolverContext{
  1266  			Index:  &idx1,
  1267  			Result: &res[idx1],
  1268  		}
  1269  		ctx := graphql.WithResolverContext(ctx, rctx)
  1270  		f := func(idx1 int) {
  1271  			if !isLen1 {
  1272  				defer wg.Done()
  1273  			}
  1274  			arr1[idx1] = func() graphql.Marshaler {
  1275  
  1276  				return ec.___InputValue(ctx, field.Selections, &res[idx1])
  1277  			}()
  1278  		}
  1279  		if isLen1 {
  1280  			f(idx1)
  1281  		} else {
  1282  			go f(idx1)
  1283  		}
  1284  
  1285  	}
  1286  	wg.Wait()
  1287  	return arr1
  1288  }
  1289  
  1290  // nolint: vetshadow
  1291  func (ec *executionContext) ___Field_type(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) graphql.Marshaler {
  1292  	rctx := &graphql.ResolverContext{
  1293  		Object: "__Field",
  1294  		Args:   nil,
  1295  		Field:  field,
  1296  	}
  1297  	ctx = graphql.WithResolverContext(ctx, rctx)
  1298  	resTmp := ec.FieldMiddleware(ctx, obj, func(rctx context.Context) (interface{}, error) {
  1299  		ctx = rctx // use context from middleware stack in children
  1300  		return obj.Type, nil
  1301  	})
  1302  	if resTmp == nil {
  1303  		if !ec.HasError(rctx) {
  1304  			ec.Errorf(ctx, "must not be null")
  1305  		}
  1306  		return graphql.Null
  1307  	}
  1308  	res := resTmp.(*introspection.Type)
  1309  	rctx.Result = res
  1310  
  1311  	if res == nil {
  1312  		if !ec.HasError(rctx) {
  1313  			ec.Errorf(ctx, "must not be null")
  1314  		}
  1315  		return graphql.Null
  1316  	}
  1317  
  1318  	return ec.___Type(ctx, field.Selections, res)
  1319  }
  1320  
  1321  // nolint: vetshadow
  1322  func (ec *executionContext) ___Field_isDeprecated(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) graphql.Marshaler {
  1323  	rctx := &graphql.ResolverContext{
  1324  		Object: "__Field",
  1325  		Args:   nil,
  1326  		Field:  field,
  1327  	}
  1328  	ctx = graphql.WithResolverContext(ctx, rctx)
  1329  	resTmp := ec.FieldMiddleware(ctx, obj, func(rctx context.Context) (interface{}, error) {
  1330  		ctx = rctx // use context from middleware stack in children
  1331  		return obj.IsDeprecated, nil
  1332  	})
  1333  	if resTmp == nil {
  1334  		if !ec.HasError(rctx) {
  1335  			ec.Errorf(ctx, "must not be null")
  1336  		}
  1337  		return graphql.Null
  1338  	}
  1339  	res := resTmp.(bool)
  1340  	rctx.Result = res
  1341  	return graphql.MarshalBoolean(res)
  1342  }
  1343  
  1344  // nolint: vetshadow
  1345  func (ec *executionContext) ___Field_deprecationReason(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) graphql.Marshaler {
  1346  	rctx := &graphql.ResolverContext{
  1347  		Object: "__Field",
  1348  		Args:   nil,
  1349  		Field:  field,
  1350  	}
  1351  	ctx = graphql.WithResolverContext(ctx, rctx)
  1352  	resTmp := ec.FieldMiddleware(ctx, obj, func(rctx context.Context) (interface{}, error) {
  1353  		ctx = rctx // use context from middleware stack in children
  1354  		return obj.DeprecationReason, nil
  1355  	})
  1356  	if resTmp == nil {
  1357  		return graphql.Null
  1358  	}
  1359  	res := resTmp.(string)
  1360  	rctx.Result = res
  1361  	return graphql.MarshalString(res)
  1362  }
  1363  
  1364  var __InputValueImplementors = []string{"__InputValue"}
  1365  
  1366  // nolint: gocyclo, errcheck, gas, goconst
  1367  func (ec *executionContext) ___InputValue(ctx context.Context, sel ast.SelectionSet, obj *introspection.InputValue) graphql.Marshaler {
  1368  	fields := graphql.CollectFields(ctx, sel, __InputValueImplementors)
  1369  
  1370  	out := graphql.NewOrderedMap(len(fields))
  1371  	invalid := false
  1372  	for i, field := range fields {
  1373  		out.Keys[i] = field.Alias
  1374  
  1375  		switch field.Name {
  1376  		case "__typename":
  1377  			out.Values[i] = graphql.MarshalString("__InputValue")
  1378  		case "name":
  1379  			out.Values[i] = ec.___InputValue_name(ctx, field, obj)
  1380  			if out.Values[i] == graphql.Null {
  1381  				invalid = true
  1382  			}
  1383  		case "description":
  1384  			out.Values[i] = ec.___InputValue_description(ctx, field, obj)
  1385  		case "type":
  1386  			out.Values[i] = ec.___InputValue_type(ctx, field, obj)
  1387  			if out.Values[i] == graphql.Null {
  1388  				invalid = true
  1389  			}
  1390  		case "defaultValue":
  1391  			out.Values[i] = ec.___InputValue_defaultValue(ctx, field, obj)
  1392  		default:
  1393  			panic("unknown field " + strconv.Quote(field.Name))
  1394  		}
  1395  	}
  1396  
  1397  	if invalid {
  1398  		return graphql.Null
  1399  	}
  1400  	return out
  1401  }
  1402  
  1403  // nolint: vetshadow
  1404  func (ec *executionContext) ___InputValue_name(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) graphql.Marshaler {
  1405  	rctx := &graphql.ResolverContext{
  1406  		Object: "__InputValue",
  1407  		Args:   nil,
  1408  		Field:  field,
  1409  	}
  1410  	ctx = graphql.WithResolverContext(ctx, rctx)
  1411  	resTmp := ec.FieldMiddleware(ctx, obj, func(rctx context.Context) (interface{}, error) {
  1412  		ctx = rctx // use context from middleware stack in children
  1413  		return obj.Name, nil
  1414  	})
  1415  	if resTmp == nil {
  1416  		if !ec.HasError(rctx) {
  1417  			ec.Errorf(ctx, "must not be null")
  1418  		}
  1419  		return graphql.Null
  1420  	}
  1421  	res := resTmp.(string)
  1422  	rctx.Result = res
  1423  	return graphql.MarshalString(res)
  1424  }
  1425  
  1426  // nolint: vetshadow
  1427  func (ec *executionContext) ___InputValue_description(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) graphql.Marshaler {
  1428  	rctx := &graphql.ResolverContext{
  1429  		Object: "__InputValue",
  1430  		Args:   nil,
  1431  		Field:  field,
  1432  	}
  1433  	ctx = graphql.WithResolverContext(ctx, rctx)
  1434  	resTmp := ec.FieldMiddleware(ctx, obj, func(rctx context.Context) (interface{}, error) {
  1435  		ctx = rctx // use context from middleware stack in children
  1436  		return obj.Description, nil
  1437  	})
  1438  	if resTmp == nil {
  1439  		return graphql.Null
  1440  	}
  1441  	res := resTmp.(string)
  1442  	rctx.Result = res
  1443  	return graphql.MarshalString(res)
  1444  }
  1445  
  1446  // nolint: vetshadow
  1447  func (ec *executionContext) ___InputValue_type(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) graphql.Marshaler {
  1448  	rctx := &graphql.ResolverContext{
  1449  		Object: "__InputValue",
  1450  		Args:   nil,
  1451  		Field:  field,
  1452  	}
  1453  	ctx = graphql.WithResolverContext(ctx, rctx)
  1454  	resTmp := ec.FieldMiddleware(ctx, obj, func(rctx context.Context) (interface{}, error) {
  1455  		ctx = rctx // use context from middleware stack in children
  1456  		return obj.Type, nil
  1457  	})
  1458  	if resTmp == nil {
  1459  		if !ec.HasError(rctx) {
  1460  			ec.Errorf(ctx, "must not be null")
  1461  		}
  1462  		return graphql.Null
  1463  	}
  1464  	res := resTmp.(*introspection.Type)
  1465  	rctx.Result = res
  1466  
  1467  	if res == nil {
  1468  		if !ec.HasError(rctx) {
  1469  			ec.Errorf(ctx, "must not be null")
  1470  		}
  1471  		return graphql.Null
  1472  	}
  1473  
  1474  	return ec.___Type(ctx, field.Selections, res)
  1475  }
  1476  
  1477  // nolint: vetshadow
  1478  func (ec *executionContext) ___InputValue_defaultValue(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) graphql.Marshaler {
  1479  	rctx := &graphql.ResolverContext{
  1480  		Object: "__InputValue",
  1481  		Args:   nil,
  1482  		Field:  field,
  1483  	}
  1484  	ctx = graphql.WithResolverContext(ctx, rctx)
  1485  	resTmp := ec.FieldMiddleware(ctx, obj, func(rctx context.Context) (interface{}, error) {
  1486  		ctx = rctx // use context from middleware stack in children
  1487  		return obj.DefaultValue, nil
  1488  	})
  1489  	if resTmp == nil {
  1490  		return graphql.Null
  1491  	}
  1492  	res := resTmp.(*string)
  1493  	rctx.Result = res
  1494  
  1495  	if res == nil {
  1496  		return graphql.Null
  1497  	}
  1498  	return graphql.MarshalString(*res)
  1499  }
  1500  
  1501  var __SchemaImplementors = []string{"__Schema"}
  1502  
  1503  // nolint: gocyclo, errcheck, gas, goconst
  1504  func (ec *executionContext) ___Schema(ctx context.Context, sel ast.SelectionSet, obj *introspection.Schema) graphql.Marshaler {
  1505  	fields := graphql.CollectFields(ctx, sel, __SchemaImplementors)
  1506  
  1507  	out := graphql.NewOrderedMap(len(fields))
  1508  	invalid := false
  1509  	for i, field := range fields {
  1510  		out.Keys[i] = field.Alias
  1511  
  1512  		switch field.Name {
  1513  		case "__typename":
  1514  			out.Values[i] = graphql.MarshalString("__Schema")
  1515  		case "types":
  1516  			out.Values[i] = ec.___Schema_types(ctx, field, obj)
  1517  			if out.Values[i] == graphql.Null {
  1518  				invalid = true
  1519  			}
  1520  		case "queryType":
  1521  			out.Values[i] = ec.___Schema_queryType(ctx, field, obj)
  1522  			if out.Values[i] == graphql.Null {
  1523  				invalid = true
  1524  			}
  1525  		case "mutationType":
  1526  			out.Values[i] = ec.___Schema_mutationType(ctx, field, obj)
  1527  		case "subscriptionType":
  1528  			out.Values[i] = ec.___Schema_subscriptionType(ctx, field, obj)
  1529  		case "directives":
  1530  			out.Values[i] = ec.___Schema_directives(ctx, field, obj)
  1531  			if out.Values[i] == graphql.Null {
  1532  				invalid = true
  1533  			}
  1534  		default:
  1535  			panic("unknown field " + strconv.Quote(field.Name))
  1536  		}
  1537  	}
  1538  
  1539  	if invalid {
  1540  		return graphql.Null
  1541  	}
  1542  	return out
  1543  }
  1544  
  1545  // nolint: vetshadow
  1546  func (ec *executionContext) ___Schema_types(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) graphql.Marshaler {
  1547  	rctx := &graphql.ResolverContext{
  1548  		Object: "__Schema",
  1549  		Args:   nil,
  1550  		Field:  field,
  1551  	}
  1552  	ctx = graphql.WithResolverContext(ctx, rctx)
  1553  	resTmp := ec.FieldMiddleware(ctx, obj, func(rctx context.Context) (interface{}, error) {
  1554  		ctx = rctx // use context from middleware stack in children
  1555  		return obj.Types(), nil
  1556  	})
  1557  	if resTmp == nil {
  1558  		if !ec.HasError(rctx) {
  1559  			ec.Errorf(ctx, "must not be null")
  1560  		}
  1561  		return graphql.Null
  1562  	}
  1563  	res := resTmp.([]introspection.Type)
  1564  	rctx.Result = res
  1565  
  1566  	arr1 := make(graphql.Array, len(res))
  1567  	var wg sync.WaitGroup
  1568  
  1569  	isLen1 := len(res) == 1
  1570  	if !isLen1 {
  1571  		wg.Add(len(res))
  1572  	}
  1573  
  1574  	for idx1 := range res {
  1575  		idx1 := idx1
  1576  		rctx := &graphql.ResolverContext{
  1577  			Index:  &idx1,
  1578  			Result: &res[idx1],
  1579  		}
  1580  		ctx := graphql.WithResolverContext(ctx, rctx)
  1581  		f := func(idx1 int) {
  1582  			if !isLen1 {
  1583  				defer wg.Done()
  1584  			}
  1585  			arr1[idx1] = func() graphql.Marshaler {
  1586  
  1587  				return ec.___Type(ctx, field.Selections, &res[idx1])
  1588  			}()
  1589  		}
  1590  		if isLen1 {
  1591  			f(idx1)
  1592  		} else {
  1593  			go f(idx1)
  1594  		}
  1595  
  1596  	}
  1597  	wg.Wait()
  1598  	return arr1
  1599  }
  1600  
  1601  // nolint: vetshadow
  1602  func (ec *executionContext) ___Schema_queryType(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) graphql.Marshaler {
  1603  	rctx := &graphql.ResolverContext{
  1604  		Object: "__Schema",
  1605  		Args:   nil,
  1606  		Field:  field,
  1607  	}
  1608  	ctx = graphql.WithResolverContext(ctx, rctx)
  1609  	resTmp := ec.FieldMiddleware(ctx, obj, func(rctx context.Context) (interface{}, error) {
  1610  		ctx = rctx // use context from middleware stack in children
  1611  		return obj.QueryType(), nil
  1612  	})
  1613  	if resTmp == nil {
  1614  		if !ec.HasError(rctx) {
  1615  			ec.Errorf(ctx, "must not be null")
  1616  		}
  1617  		return graphql.Null
  1618  	}
  1619  	res := resTmp.(*introspection.Type)
  1620  	rctx.Result = res
  1621  
  1622  	if res == nil {
  1623  		if !ec.HasError(rctx) {
  1624  			ec.Errorf(ctx, "must not be null")
  1625  		}
  1626  		return graphql.Null
  1627  	}
  1628  
  1629  	return ec.___Type(ctx, field.Selections, res)
  1630  }
  1631  
  1632  // nolint: vetshadow
  1633  func (ec *executionContext) ___Schema_mutationType(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) graphql.Marshaler {
  1634  	rctx := &graphql.ResolverContext{
  1635  		Object: "__Schema",
  1636  		Args:   nil,
  1637  		Field:  field,
  1638  	}
  1639  	ctx = graphql.WithResolverContext(ctx, rctx)
  1640  	resTmp := ec.FieldMiddleware(ctx, obj, func(rctx context.Context) (interface{}, error) {
  1641  		ctx = rctx // use context from middleware stack in children
  1642  		return obj.MutationType(), nil
  1643  	})
  1644  	if resTmp == nil {
  1645  		return graphql.Null
  1646  	}
  1647  	res := resTmp.(*introspection.Type)
  1648  	rctx.Result = res
  1649  
  1650  	if res == nil {
  1651  		return graphql.Null
  1652  	}
  1653  
  1654  	return ec.___Type(ctx, field.Selections, res)
  1655  }
  1656  
  1657  // nolint: vetshadow
  1658  func (ec *executionContext) ___Schema_subscriptionType(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) graphql.Marshaler {
  1659  	rctx := &graphql.ResolverContext{
  1660  		Object: "__Schema",
  1661  		Args:   nil,
  1662  		Field:  field,
  1663  	}
  1664  	ctx = graphql.WithResolverContext(ctx, rctx)
  1665  	resTmp := ec.FieldMiddleware(ctx, obj, func(rctx context.Context) (interface{}, error) {
  1666  		ctx = rctx // use context from middleware stack in children
  1667  		return obj.SubscriptionType(), nil
  1668  	})
  1669  	if resTmp == nil {
  1670  		return graphql.Null
  1671  	}
  1672  	res := resTmp.(*introspection.Type)
  1673  	rctx.Result = res
  1674  
  1675  	if res == nil {
  1676  		return graphql.Null
  1677  	}
  1678  
  1679  	return ec.___Type(ctx, field.Selections, res)
  1680  }
  1681  
  1682  // nolint: vetshadow
  1683  func (ec *executionContext) ___Schema_directives(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) graphql.Marshaler {
  1684  	rctx := &graphql.ResolverContext{
  1685  		Object: "__Schema",
  1686  		Args:   nil,
  1687  		Field:  field,
  1688  	}
  1689  	ctx = graphql.WithResolverContext(ctx, rctx)
  1690  	resTmp := ec.FieldMiddleware(ctx, obj, func(rctx context.Context) (interface{}, error) {
  1691  		ctx = rctx // use context from middleware stack in children
  1692  		return obj.Directives(), nil
  1693  	})
  1694  	if resTmp == nil {
  1695  		if !ec.HasError(rctx) {
  1696  			ec.Errorf(ctx, "must not be null")
  1697  		}
  1698  		return graphql.Null
  1699  	}
  1700  	res := resTmp.([]introspection.Directive)
  1701  	rctx.Result = res
  1702  
  1703  	arr1 := make(graphql.Array, len(res))
  1704  	var wg sync.WaitGroup
  1705  
  1706  	isLen1 := len(res) == 1
  1707  	if !isLen1 {
  1708  		wg.Add(len(res))
  1709  	}
  1710  
  1711  	for idx1 := range res {
  1712  		idx1 := idx1
  1713  		rctx := &graphql.ResolverContext{
  1714  			Index:  &idx1,
  1715  			Result: &res[idx1],
  1716  		}
  1717  		ctx := graphql.WithResolverContext(ctx, rctx)
  1718  		f := func(idx1 int) {
  1719  			if !isLen1 {
  1720  				defer wg.Done()
  1721  			}
  1722  			arr1[idx1] = func() graphql.Marshaler {
  1723  
  1724  				return ec.___Directive(ctx, field.Selections, &res[idx1])
  1725  			}()
  1726  		}
  1727  		if isLen1 {
  1728  			f(idx1)
  1729  		} else {
  1730  			go f(idx1)
  1731  		}
  1732  
  1733  	}
  1734  	wg.Wait()
  1735  	return arr1
  1736  }
  1737  
  1738  var __TypeImplementors = []string{"__Type"}
  1739  
  1740  // nolint: gocyclo, errcheck, gas, goconst
  1741  func (ec *executionContext) ___Type(ctx context.Context, sel ast.SelectionSet, obj *introspection.Type) graphql.Marshaler {
  1742  	fields := graphql.CollectFields(ctx, sel, __TypeImplementors)
  1743  
  1744  	out := graphql.NewOrderedMap(len(fields))
  1745  	invalid := false
  1746  	for i, field := range fields {
  1747  		out.Keys[i] = field.Alias
  1748  
  1749  		switch field.Name {
  1750  		case "__typename":
  1751  			out.Values[i] = graphql.MarshalString("__Type")
  1752  		case "kind":
  1753  			out.Values[i] = ec.___Type_kind(ctx, field, obj)
  1754  			if out.Values[i] == graphql.Null {
  1755  				invalid = true
  1756  			}
  1757  		case "name":
  1758  			out.Values[i] = ec.___Type_name(ctx, field, obj)
  1759  		case "description":
  1760  			out.Values[i] = ec.___Type_description(ctx, field, obj)
  1761  		case "fields":
  1762  			out.Values[i] = ec.___Type_fields(ctx, field, obj)
  1763  		case "interfaces":
  1764  			out.Values[i] = ec.___Type_interfaces(ctx, field, obj)
  1765  		case "possibleTypes":
  1766  			out.Values[i] = ec.___Type_possibleTypes(ctx, field, obj)
  1767  		case "enumValues":
  1768  			out.Values[i] = ec.___Type_enumValues(ctx, field, obj)
  1769  		case "inputFields":
  1770  			out.Values[i] = ec.___Type_inputFields(ctx, field, obj)
  1771  		case "ofType":
  1772  			out.Values[i] = ec.___Type_ofType(ctx, field, obj)
  1773  		default:
  1774  			panic("unknown field " + strconv.Quote(field.Name))
  1775  		}
  1776  	}
  1777  
  1778  	if invalid {
  1779  		return graphql.Null
  1780  	}
  1781  	return out
  1782  }
  1783  
  1784  // nolint: vetshadow
  1785  func (ec *executionContext) ___Type_kind(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) graphql.Marshaler {
  1786  	rctx := &graphql.ResolverContext{
  1787  		Object: "__Type",
  1788  		Args:   nil,
  1789  		Field:  field,
  1790  	}
  1791  	ctx = graphql.WithResolverContext(ctx, rctx)
  1792  	resTmp := ec.FieldMiddleware(ctx, obj, func(rctx context.Context) (interface{}, error) {
  1793  		ctx = rctx // use context from middleware stack in children
  1794  		return obj.Kind(), nil
  1795  	})
  1796  	if resTmp == nil {
  1797  		if !ec.HasError(rctx) {
  1798  			ec.Errorf(ctx, "must not be null")
  1799  		}
  1800  		return graphql.Null
  1801  	}
  1802  	res := resTmp.(string)
  1803  	rctx.Result = res
  1804  	return graphql.MarshalString(res)
  1805  }
  1806  
  1807  // nolint: vetshadow
  1808  func (ec *executionContext) ___Type_name(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) graphql.Marshaler {
  1809  	rctx := &graphql.ResolverContext{
  1810  		Object: "__Type",
  1811  		Args:   nil,
  1812  		Field:  field,
  1813  	}
  1814  	ctx = graphql.WithResolverContext(ctx, rctx)
  1815  	resTmp := ec.FieldMiddleware(ctx, obj, func(rctx context.Context) (interface{}, error) {
  1816  		ctx = rctx // use context from middleware stack in children
  1817  		return obj.Name(), nil
  1818  	})
  1819  	if resTmp == nil {
  1820  		return graphql.Null
  1821  	}
  1822  	res := resTmp.(*string)
  1823  	rctx.Result = res
  1824  
  1825  	if res == nil {
  1826  		return graphql.Null
  1827  	}
  1828  	return graphql.MarshalString(*res)
  1829  }
  1830  
  1831  // nolint: vetshadow
  1832  func (ec *executionContext) ___Type_description(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) graphql.Marshaler {
  1833  	rctx := &graphql.ResolverContext{
  1834  		Object: "__Type",
  1835  		Args:   nil,
  1836  		Field:  field,
  1837  	}
  1838  	ctx = graphql.WithResolverContext(ctx, rctx)
  1839  	resTmp := ec.FieldMiddleware(ctx, obj, func(rctx context.Context) (interface{}, error) {
  1840  		ctx = rctx // use context from middleware stack in children
  1841  		return obj.Description(), nil
  1842  	})
  1843  	if resTmp == nil {
  1844  		return graphql.Null
  1845  	}
  1846  	res := resTmp.(string)
  1847  	rctx.Result = res
  1848  	return graphql.MarshalString(res)
  1849  }
  1850  
  1851  // nolint: vetshadow
  1852  func (ec *executionContext) ___Type_fields(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) graphql.Marshaler {
  1853  	rawArgs := field.ArgumentMap(ec.Variables)
  1854  	args, err := field___Type_fields_args(rawArgs)
  1855  	if err != nil {
  1856  		ec.Error(ctx, err)
  1857  		return graphql.Null
  1858  	}
  1859  	rctx := &graphql.ResolverContext{
  1860  		Object: "__Type",
  1861  		Args:   args,
  1862  		Field:  field,
  1863  	}
  1864  	ctx = graphql.WithResolverContext(ctx, rctx)
  1865  	resTmp := ec.FieldMiddleware(ctx, obj, func(rctx context.Context) (interface{}, error) {
  1866  		ctx = rctx // use context from middleware stack in children
  1867  		return obj.Fields(args["includeDeprecated"].(bool)), nil
  1868  	})
  1869  	if resTmp == nil {
  1870  		return graphql.Null
  1871  	}
  1872  	res := resTmp.([]introspection.Field)
  1873  	rctx.Result = res
  1874  
  1875  	arr1 := make(graphql.Array, len(res))
  1876  	var wg sync.WaitGroup
  1877  
  1878  	isLen1 := len(res) == 1
  1879  	if !isLen1 {
  1880  		wg.Add(len(res))
  1881  	}
  1882  
  1883  	for idx1 := range res {
  1884  		idx1 := idx1
  1885  		rctx := &graphql.ResolverContext{
  1886  			Index:  &idx1,
  1887  			Result: &res[idx1],
  1888  		}
  1889  		ctx := graphql.WithResolverContext(ctx, rctx)
  1890  		f := func(idx1 int) {
  1891  			if !isLen1 {
  1892  				defer wg.Done()
  1893  			}
  1894  			arr1[idx1] = func() graphql.Marshaler {
  1895  
  1896  				return ec.___Field(ctx, field.Selections, &res[idx1])
  1897  			}()
  1898  		}
  1899  		if isLen1 {
  1900  			f(idx1)
  1901  		} else {
  1902  			go f(idx1)
  1903  		}
  1904  
  1905  	}
  1906  	wg.Wait()
  1907  	return arr1
  1908  }
  1909  
  1910  // nolint: vetshadow
  1911  func (ec *executionContext) ___Type_interfaces(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) graphql.Marshaler {
  1912  	rctx := &graphql.ResolverContext{
  1913  		Object: "__Type",
  1914  		Args:   nil,
  1915  		Field:  field,
  1916  	}
  1917  	ctx = graphql.WithResolverContext(ctx, rctx)
  1918  	resTmp := ec.FieldMiddleware(ctx, obj, func(rctx context.Context) (interface{}, error) {
  1919  		ctx = rctx // use context from middleware stack in children
  1920  		return obj.Interfaces(), nil
  1921  	})
  1922  	if resTmp == nil {
  1923  		return graphql.Null
  1924  	}
  1925  	res := resTmp.([]introspection.Type)
  1926  	rctx.Result = res
  1927  
  1928  	arr1 := make(graphql.Array, len(res))
  1929  	var wg sync.WaitGroup
  1930  
  1931  	isLen1 := len(res) == 1
  1932  	if !isLen1 {
  1933  		wg.Add(len(res))
  1934  	}
  1935  
  1936  	for idx1 := range res {
  1937  		idx1 := idx1
  1938  		rctx := &graphql.ResolverContext{
  1939  			Index:  &idx1,
  1940  			Result: &res[idx1],
  1941  		}
  1942  		ctx := graphql.WithResolverContext(ctx, rctx)
  1943  		f := func(idx1 int) {
  1944  			if !isLen1 {
  1945  				defer wg.Done()
  1946  			}
  1947  			arr1[idx1] = func() graphql.Marshaler {
  1948  
  1949  				return ec.___Type(ctx, field.Selections, &res[idx1])
  1950  			}()
  1951  		}
  1952  		if isLen1 {
  1953  			f(idx1)
  1954  		} else {
  1955  			go f(idx1)
  1956  		}
  1957  
  1958  	}
  1959  	wg.Wait()
  1960  	return arr1
  1961  }
  1962  
  1963  // nolint: vetshadow
  1964  func (ec *executionContext) ___Type_possibleTypes(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) graphql.Marshaler {
  1965  	rctx := &graphql.ResolverContext{
  1966  		Object: "__Type",
  1967  		Args:   nil,
  1968  		Field:  field,
  1969  	}
  1970  	ctx = graphql.WithResolverContext(ctx, rctx)
  1971  	resTmp := ec.FieldMiddleware(ctx, obj, func(rctx context.Context) (interface{}, error) {
  1972  		ctx = rctx // use context from middleware stack in children
  1973  		return obj.PossibleTypes(), nil
  1974  	})
  1975  	if resTmp == nil {
  1976  		return graphql.Null
  1977  	}
  1978  	res := resTmp.([]introspection.Type)
  1979  	rctx.Result = res
  1980  
  1981  	arr1 := make(graphql.Array, len(res))
  1982  	var wg sync.WaitGroup
  1983  
  1984  	isLen1 := len(res) == 1
  1985  	if !isLen1 {
  1986  		wg.Add(len(res))
  1987  	}
  1988  
  1989  	for idx1 := range res {
  1990  		idx1 := idx1
  1991  		rctx := &graphql.ResolverContext{
  1992  			Index:  &idx1,
  1993  			Result: &res[idx1],
  1994  		}
  1995  		ctx := graphql.WithResolverContext(ctx, rctx)
  1996  		f := func(idx1 int) {
  1997  			if !isLen1 {
  1998  				defer wg.Done()
  1999  			}
  2000  			arr1[idx1] = func() graphql.Marshaler {
  2001  
  2002  				return ec.___Type(ctx, field.Selections, &res[idx1])
  2003  			}()
  2004  		}
  2005  		if isLen1 {
  2006  			f(idx1)
  2007  		} else {
  2008  			go f(idx1)
  2009  		}
  2010  
  2011  	}
  2012  	wg.Wait()
  2013  	return arr1
  2014  }
  2015  
  2016  // nolint: vetshadow
  2017  func (ec *executionContext) ___Type_enumValues(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) graphql.Marshaler {
  2018  	rawArgs := field.ArgumentMap(ec.Variables)
  2019  	args, err := field___Type_enumValues_args(rawArgs)
  2020  	if err != nil {
  2021  		ec.Error(ctx, err)
  2022  		return graphql.Null
  2023  	}
  2024  	rctx := &graphql.ResolverContext{
  2025  		Object: "__Type",
  2026  		Args:   args,
  2027  		Field:  field,
  2028  	}
  2029  	ctx = graphql.WithResolverContext(ctx, rctx)
  2030  	resTmp := ec.FieldMiddleware(ctx, obj, func(rctx context.Context) (interface{}, error) {
  2031  		ctx = rctx // use context from middleware stack in children
  2032  		return obj.EnumValues(args["includeDeprecated"].(bool)), nil
  2033  	})
  2034  	if resTmp == nil {
  2035  		return graphql.Null
  2036  	}
  2037  	res := resTmp.([]introspection.EnumValue)
  2038  	rctx.Result = res
  2039  
  2040  	arr1 := make(graphql.Array, len(res))
  2041  	var wg sync.WaitGroup
  2042  
  2043  	isLen1 := len(res) == 1
  2044  	if !isLen1 {
  2045  		wg.Add(len(res))
  2046  	}
  2047  
  2048  	for idx1 := range res {
  2049  		idx1 := idx1
  2050  		rctx := &graphql.ResolverContext{
  2051  			Index:  &idx1,
  2052  			Result: &res[idx1],
  2053  		}
  2054  		ctx := graphql.WithResolverContext(ctx, rctx)
  2055  		f := func(idx1 int) {
  2056  			if !isLen1 {
  2057  				defer wg.Done()
  2058  			}
  2059  			arr1[idx1] = func() graphql.Marshaler {
  2060  
  2061  				return ec.___EnumValue(ctx, field.Selections, &res[idx1])
  2062  			}()
  2063  		}
  2064  		if isLen1 {
  2065  			f(idx1)
  2066  		} else {
  2067  			go f(idx1)
  2068  		}
  2069  
  2070  	}
  2071  	wg.Wait()
  2072  	return arr1
  2073  }
  2074  
  2075  // nolint: vetshadow
  2076  func (ec *executionContext) ___Type_inputFields(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) graphql.Marshaler {
  2077  	rctx := &graphql.ResolverContext{
  2078  		Object: "__Type",
  2079  		Args:   nil,
  2080  		Field:  field,
  2081  	}
  2082  	ctx = graphql.WithResolverContext(ctx, rctx)
  2083  	resTmp := ec.FieldMiddleware(ctx, obj, func(rctx context.Context) (interface{}, error) {
  2084  		ctx = rctx // use context from middleware stack in children
  2085  		return obj.InputFields(), nil
  2086  	})
  2087  	if resTmp == nil {
  2088  		return graphql.Null
  2089  	}
  2090  	res := resTmp.([]introspection.InputValue)
  2091  	rctx.Result = res
  2092  
  2093  	arr1 := make(graphql.Array, len(res))
  2094  	var wg sync.WaitGroup
  2095  
  2096  	isLen1 := len(res) == 1
  2097  	if !isLen1 {
  2098  		wg.Add(len(res))
  2099  	}
  2100  
  2101  	for idx1 := range res {
  2102  		idx1 := idx1
  2103  		rctx := &graphql.ResolverContext{
  2104  			Index:  &idx1,
  2105  			Result: &res[idx1],
  2106  		}
  2107  		ctx := graphql.WithResolverContext(ctx, rctx)
  2108  		f := func(idx1 int) {
  2109  			if !isLen1 {
  2110  				defer wg.Done()
  2111  			}
  2112  			arr1[idx1] = func() graphql.Marshaler {
  2113  
  2114  				return ec.___InputValue(ctx, field.Selections, &res[idx1])
  2115  			}()
  2116  		}
  2117  		if isLen1 {
  2118  			f(idx1)
  2119  		} else {
  2120  			go f(idx1)
  2121  		}
  2122  
  2123  	}
  2124  	wg.Wait()
  2125  	return arr1
  2126  }
  2127  
  2128  // nolint: vetshadow
  2129  func (ec *executionContext) ___Type_ofType(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) graphql.Marshaler {
  2130  	rctx := &graphql.ResolverContext{
  2131  		Object: "__Type",
  2132  		Args:   nil,
  2133  		Field:  field,
  2134  	}
  2135  	ctx = graphql.WithResolverContext(ctx, rctx)
  2136  	resTmp := ec.FieldMiddleware(ctx, obj, func(rctx context.Context) (interface{}, error) {
  2137  		ctx = rctx // use context from middleware stack in children
  2138  		return obj.OfType(), nil
  2139  	})
  2140  	if resTmp == nil {
  2141  		return graphql.Null
  2142  	}
  2143  	res := resTmp.(*introspection.Type)
  2144  	rctx.Result = res
  2145  
  2146  	if res == nil {
  2147  		return graphql.Null
  2148  	}
  2149  
  2150  	return ec.___Type(ctx, field.Selections, res)
  2151  }
  2152  
  2153  func (ec *executionContext) FieldMiddleware(ctx context.Context, obj interface{}, next graphql.Resolver) (ret interface{}) {
  2154  	defer func() {
  2155  		if r := recover(); r != nil {
  2156  			ec.Error(ctx, ec.Recover(ctx, r))
  2157  			ret = nil
  2158  		}
  2159  	}()
  2160  	res, err := ec.ResolverMiddleware(ctx, next)
  2161  	if err != nil {
  2162  		ec.Error(ctx, err)
  2163  		return nil
  2164  	}
  2165  	return res
  2166  }
  2167  
  2168  func (ec *executionContext) introspectSchema() *introspection.Schema {
  2169  	return introspection.WrapSchema(parsedSchema)
  2170  }
  2171  
  2172  func (ec *executionContext) introspectType(name string) *introspection.Type {
  2173  	return introspection.WrapTypeFromDef(parsedSchema, parsedSchema.Types[name])
  2174  }
  2175  
  2176  var parsedSchema = gqlparser.MustLoadSchema(
  2177  	&ast.Source{Name: "schema.graphql", Input: `type Chatroom {
  2178      name: String!
  2179      messages: [Message!]!
  2180  }
  2181  
  2182  type Message {
  2183      id: ID!
  2184      text: String!
  2185      createdBy: String!
  2186      createdAt: Time!
  2187  }
  2188  
  2189  type Query {
  2190      room(name:String!): Chatroom
  2191  }
  2192  
  2193  type Mutation {
  2194      post(text: String!, username: String!, roomName: String!): Message!
  2195  }
  2196  
  2197  type Subscription {
  2198      messageAdded(roomName: String!): Message!
  2199  }
  2200  
  2201  scalar Time
  2202  `},
  2203  )