aboutsummaryrefslogtreecommitdiffstats
path: root/vendor/github.com/99designs/gqlgen/codegen/templates/interface.gotpl
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/github.com/99designs/gqlgen/codegen/templates/interface.gotpl')
-rw-r--r--vendor/github.com/99designs/gqlgen/codegen/templates/interface.gotpl18
1 files changed, 18 insertions, 0 deletions
diff --git a/vendor/github.com/99designs/gqlgen/codegen/templates/interface.gotpl b/vendor/github.com/99designs/gqlgen/codegen/templates/interface.gotpl
new file mode 100644
index 00000000..84cbe500
--- /dev/null
+++ b/vendor/github.com/99designs/gqlgen/codegen/templates/interface.gotpl
@@ -0,0 +1,18 @@
+{{- $interface := . }}
+
+func (ec *executionContext) _{{$interface.GQLType}}(ctx context.Context, sel ast.SelectionSet, obj *{{$interface.FullName}}) graphql.Marshaler {
+ switch obj := (*obj).(type) {
+ case nil:
+ return graphql.Null
+ {{- range $implementor := $interface.Implementors }}
+ {{- if $implementor.ValueReceiver }}
+ case {{$implementor.FullName}}:
+ return ec._{{$implementor.GQLType}}(ctx, sel, &obj)
+ {{- end}}
+ case *{{$implementor.FullName}}:
+ return ec._{{$implementor.GQLType}}(ctx, sel, obj)
+ {{- end }}
+ default:
+ panic(fmt.Errorf("unexpected type %T", obj))
+ }
+}